1. Size of a static array: Use std::array please
2. Maximum value of an enum: See reflection TS
3. Converting enum to string: ditto
4. Converting string to enum: ditto
5. #pragma once: see modules. They are in fact trying to make something better. There are also some cases where you don't want/need it
6. C99 designated initializers. They are there!
7. Binary file includes. Ugh this is just such a dumb idea I can't even. When do you want the file to load? When the executable does? What if you want to read it in chunks? This idea is not well suited for a systems-oriented language
8. FourCC codes. Again, this is a silly idea not even worth addressing. Just define it yourself. C++ is a programming language. Not your media toolkit
9. do/while(0). What are you using macros for in 2016 (the time of writing)?
10. preprocessor gripes. Stop using it! You have <type_traits> and stuff now
11. Switch/case is stupid. No it's not. You want fall/through cases as well and if you can't see why, don't criticize. This is true in pretty much EVERY language that supports switch/case
12. Still no strong typedefs. There are! Use the explicit keyword on a constructor definition.
13. Types as Primitives. See reflection TS
Basically, this feels like any other "C++ rant." Someone who didn't learn the language properly or respects what the language needs to achieve.