Следующий код не в GCC, Clang и Visual Studio:Почему я не могу скопировать инициализацию строкового потока из строки?
#include <string>
#include <sstream>
int main() {
std::string s = "hello"; // ok, copy-initialization
std::stringstream ss1(s); // ok, direct-initialization
std::stringstream ss2 = s; // error
}
Я думал, что единственный случай, когда работает прямая инициализация во время копирования инициализации не есть, когда конструктор явно, что он не Это дело. Что происходит?
Codepad пример: http://codepad.org/du90Fkck –
Я запутался с вами почему» re пытается установить std :: stringstream в строку. Для этого нет оператора присваивания по умолчанию. Взгляните [здесь] (http://www.cplusplus.com/reference/sstream/stringstream/operator=/). – Dan
@ Дан, это инициализация, а не назначение. – jrok