No, constructors will not become obsolete, especially not the
constructors that take arguments.
Constructors allow two things that are not possible with in-class
initializers:
- Initialization of members with a value that is not known (or whose
origin is unknown) at the point where the class is defined.
- Operations other than initialization of the members
With the existence of in-class initializers, the need for defining custom
default constructors will be reduced, but it will never be completely
gone.
Bart v Ingen Schenau