小编use*_*484的帖子

为什么部分初始化一个类然后调用委托ctor失败?

以下代码不会将结构字符串成员初始化为相同的值。

#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;
}
Run Code Online (Sandbox Code Playgroud)

我在gcc(尝试了不同的版本)和123|clang(也有不同的版本)中通过Wandbox 遇到了分段错误。

我收到读取访问冲突Visual Studio 15.9.16

谢谢。

c++ delegating-constructor

1
推荐指数
1
解决办法
64
查看次数

标签 统计

c++ ×1

delegating-constructor ×1