Подтвердить что ты не робот

Как инициализировать статический член константного векторного класса в С++ 11

Мне нужно инициализировать статический член класса const vector... Я пробовал

static const vector<string> vr ({"2", "3", "4"});  

static const vector<string> vr = {"2", "3", "4"}; 

static const vector<string> vr {"2", "3", "4"};

они не работают....

Я использую eclipse с mingw (я включил С++ 11)

4b9b3361

Ответ 1

Инициализация статической переменной выполняется вне класса, например:

class Example
{
    static const vector<string> vr;
    // ...
};

const vector<string> Example :: vr ({"hello", "world"});

Ответ 2

Объявите свои статические члены в определении класса, но определите их снаружи.

class MyClass {
public:
    // declaration
    static const std::vector<std::string> vec;
};

// definition
const std::vector<std::string> MyClass::vec = ...;

Исключение составляют интегральные типы,

class MyClass {
public:
    // declaration and definition
    static const int MAX_BURRITOS = 5;
};