以下代码不会将结构字符串成员初始化为相同的值。
#include <string>
#include <iostream>
struct S
{
std::string s1;
std::string s2;
S(std::string const& s) : s1{s}{}
S(int i) : S([&]{
s2 = std::to_string(i);
return std::to_string(i);
}())
{}
};
int main()
{
S s{123};
std::cout << s.s1 << "|" << s.s2;
return 0;
}
我在 gcc(尝试了不同的版本)和123|
通过 Wandbox 的 clang(也有不同的版本)中遇到了分段错误。
我遇到读取访问冲突 Visual Studio 15.9.16
谢谢你。