Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> In old C++ you had to spend all your time worrying about manual ctors

That doesn't even make sense. Maybe you meant "destructors" but even then it has nothing to do with reality



I mean constructors. It's the exception to have to do anything meaningful in the body of a constructor in modern C++ - you can do a lot with member initialisation lists, delegated constructors and defaulted/deleted constructors (remember boost::noncopyable?). And your assignment operators will actually be exception safe.


Constructors was a mistake. Stupid and simple initialisation like Rust and Go is the way to go forward.


Constructors induced exceptions, and once we have exceptions they became the failure reporting mechanism of the standard library, leaving us with goto-some-other-function-using-dynamic-scope as one of the foundation blocks of the language. Thus constructors are a reasonable contender for the worst design mistake in C++.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: