c – 初始化空字符串的“”和{}之间有什么区别?
发布时间:2020-12-16 10:05:18 所属栏目:百科 来源:网络整理
导读:string a = "";string b = {}; 我无法找到解释它们之间差异的好参考.编译器有不同的看法吗?那么为什么? 解决方法 a使用复制初始化构建. b使用复制列表初始化来构造. 对于std :: string,编译器将生成相同的东西;一个零长度的字符串. 但构造字符串的机制可能
string a = ""; string b = {}; 我无法找到解释它们之间差异的好参考.编译器有不同的看法吗?那么为什么? 解决方法
a使用复制初始化构建.
b使用复制列表初始化来构造. 对于std :: string,编译器将生成相同的东西;一个零长度的字符串. 但构造字符串的机制可能不同 – 编译器,至少在概念上,必须遍历传递给构造a的匿名临时const char []. 对于其他类型,可能存在差异;研究上述两个术语以获取更多细节. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |