I am confused with followed concepts:
string str=\"123\";
Some books say that: using \"=\" is copy initialization,
but some articles sa
It's simply a matter of grammar:
T x = y;
is copy-initialization, and
T x(y);
is direct-initialization.
This is true for any type T
. What happens exactly depends on what sort of type T
is. For primitive types (e.g. int
s), the two are exactly the same. For class-types (such as std::string
), the two are practically the same, though copy-initialization requires that a copy-constructor be accessible and non-explicit (though it will not actually be called in practice).