在统一初始化中初始化vector <std :: string>

时间:2019-04-24 21:16:13

标签: c++11 uniform-initialization

我正在使用以下代码

class test
{
public:
    test(std::vector<std::string> str)
    {
        auto a = str[0];
        a = "B";
    }
    test()
    {
    }
    const std::multimap<int,  std::multimap<int, test>> _var= {
        {0x01,  {
                    {
                        0x0f, std::vector<std::string>{"A", "B", "C", "D"}
                    }
        }
        }
    };
};

int main()
{
    test t;
    std::cout << "Done";
}

上面的代码构建良好,但是运行它时访问错误。我附加了调用堆栈。有什么建议为什么我会出现该错误?或者我该如何解决?好像是一个恒定的循环。

enter image description here

1 个答案:

答案 0 :(得分:3)

您遇到无限递归的情况,导致堆栈溢出。

创建test的实例->
初始化_var->
创建test->
的实例 初始化_var->

以此类推。