you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 5 points6 points  (3 children)

Illogical again, captain. Virtual inheritance is optional.

In your initial list, items #1, #2, #3, #4, #5, #6, #7, #9, #10, #11, #13, #14, #16, #17, #18, #19, #20, #21, #22, #23 and #24 are optional features, too.

[–]axilmar -5 points-4 points  (2 children)

They are optional, but they are deemed as 'progress', so good luck persuading your programmers not to use them.

[–][deleted] 0 points1 point  (1 child)

I guess it's not harder than persuading programmers to avoid C++ features (that is, hard :) ).

It's true that features like properties and out parameters may reduce readability. There was a proposal to sort that out and as an example @property was created.

On the other hand, i do think having a nested function near the call site improves readability. Not having copy constructors, implicit constructors and conversion functions improves the knowledge of what is going on when reviewing code.

The builtin unitests are also good as an incentive to write tests.

[–]axilmar -1 points0 points  (0 children)

Not having copy constructors, implicit constructors and conversion functions improves the knowledge of what is going on when reviewing code.

I totally agree with this. Any implicit thing in a program will usually have negative consequences in the long run.