考虑以下程序
#include <iostream>
int main()
{
std::string a = "Hello World"; // Copy initialization
std::string b("Hello World"); // Direct initialization
std::string c{"Hello World"}; // Value initialization
}
我意识到这3条线的结果是相同的,但是我想知道它们在后台的工作方式是否不同。如果有这种区别,那是什么?这些初始化中哪一个最有效?