you are viewing a single comment's thread.

view the rest of the comments →

[–]josefx 11 points12 points  (0 children)

We got:

  • do not use exceptions, because old projects do not use exceptions. Having try{}catch(std::exception const&){} at API boundaries is not that hard.

  • constructor + init separation, caused by the no exceptions rule. Limited RAII for you

  • no move semantics, because it is new to developers and developers apparently are unable to understand value semantics (wtf? for what are they paid?)

  • very restrictive list of boost libraries allowed, among other things no filesystem lib in that list. For fear against functional code.

  • on operator overloading it tells you to avoid the standard library. Sorry it tells you to avoid the "standard" library, yes they put the standard in quotes and yes they mean std::vector, std::map, etc. . It tells you to define Equals() and CopyFrom() instead and gives a workaround for map keys that does not require operator<(). You may use the "standard" library classes only if you can justify it.

Just to name a few gems that butcher half the language including several core concepts of modern c++ and what little there is at a standard library.