Инициализация вектора в равномерной инициализации

Обновить

April 2019

Просмотры

23 раз

1

Я использую следующий код

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";
}

Приведенный выше код создает штраф, однако я получаю плохой доступ, когда я запускаю его. Я прикрепил стек вызовов. Любые предложения, почему я получаю эту ошибку? или как я могу это исправить? Похоже, его постоянная петля.

введите описание изображения здесь

1 ответы

3

You have a case of infinite recursion, leading to stack overflow.

Create an instance of test -->
Initialize _var -->
Create an instance of test -->
Initialize _var -->

and so on.