Обнаружить неопределенную переменную для msv c компилятора для c ++ 14 - PullRequest
1 голос
/ 26 марта 2020

Рассмотрим следующий код C ++ 14 (это важно):

struct B {
    static constexpr int a = 1;
};

int main() {
    auto p = &B::a;
}

При компиляции с g cc это приводит к "неопределенной ссылке", поскольку B::a не определено (только объявлено) , Чтобы решить эту проблему, мы просто должны определить B::a вне структуры:

constexpr int B::a;

Но у меня проблема с компилятором msv c. Даже без определения B::a первый фрагмент кода просто скомпилирован хорошо (без проблемы с «неопределенной ссылкой»).

Есть ли способ (я думаю, опция компилятора) сказать msv c, чтобы обнаружить такую ​​проблему, компилируемую для стандарта C ++ 14, т.е. когда используется опция /std:c++14?

Вот ссылка на Godbolt, где я тестировал проблему: https://godbolt.org/z/G8BnFY

...