Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 此输出有效还是编译器错误? #包括 #包括 int main(int argc,char*argv[]) { std::字符串s={123}; std::cout_C++_C++11_Initializer List - Fatal编程技术网

C++ 此输出有效还是编译器错误? #包括 #包括 int main(int argc,char*argv[]) { std::字符串s={123}; std::cout

C++ 此输出有效还是编译器错误? #包括 #包括 int main(int argc,char*argv[]) { std::字符串s={123}; std::cout,c++,c++11,initializer-list,C++,C++11,Initializer List,您正在使用字符数组初始化字符串。123是最新的。没有编译器错误 您正在调用的构造函数是std::string(参见以获取参考)的initializer list构造函数,如C++11标准第21.4.2/15段所述: basic_字符串(std::initializer_list init, 常量分配器&alloc=Allocator()); 效果:与基本字符串(il.begin(),il.end(),a)相同。 MSVC不支持列表初始化,因此您会收到一条消息,抱怨string不是聚合。123是

您正在使用字符数组初始化字符串。
123
是最新的。没有编译器错误

您正在调用的构造函数是
std::string
(参见以获取参考)的initializer list构造函数,如C++11标准第21.4.2/15段所述:

basic_字符串(std::initializer_list init,
常量分配器&alloc=Allocator());
效果:与基本字符串(il.begin(),il.end(),a)相同。


MSVC不支持列表初始化,因此您会收到一条消息,抱怨
string
不是聚合。

123是{similor:
#include <iostream>
#include <string>

int main(int argc, char *argv[])
{
    std::string s = {123};
    std::cout << s << std::endl;
}
basic_string(std::initializer_list<CharT> init, 
             const Allocator& alloc = Allocator());