Почему я получаю эту ошибку: constexpr 'здесь недопустим - PullRequest
0 голосов
/ 14 мая 2018

У меня есть этот код:

class myClass
{
        constexpr int x = 4;
};

и на visual studio 2015 я получаю эту ошибку:

'constexpr' is not valid here

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

На следующем шаге я хочу изменить свой класс на шаблон, но эта константа не связана с типом классов.

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Мне нужна постоянная статическая переменная, которую я могу инициализировать в заголовочном файле

если ваша основная задача - это постоянное значение, которое доступно всем экземплярам типов шаблонов, то вы можете просто перейти к следующему:

class myClass
{
    static const int x = 4;
};

Если вас беспокоит пространство памяти (хотя оно распределяется между всеми экземплярами), вы можете просто использовать решение предварительной обработки компиляции (т. Е. #Define X 4)

0 голосов
/ 14 мая 2018

Номера элементов static не могут быть объявлены как constexpr.Вместо него используйте

class myClass
{
    static constexpr int x = 4;
};

.

...