I have been reading this page to understand the concept of value-initialization http://en.cppreference.com/w/cpp/language/value_initialization
The effects of value initialization are:
- If T is a class type with at least one user-provided constructor of any kind, the default constructor is called.
But this seems to be in direct contradiction with other sources explaining that if there is at least a user-defined constructor, then the compiler does not generate an implicit default constructor (expressions like "T t;" won't compile). Any explanation is welcome.