Рассмотрите следующую программу (упрощенную со времени первого издания вопроса):
Код: Выделить всё
constexpr bool f(int * x = nullptr) {
int c = 0;
return x ? (x != &c) : f(&c);
};
static_assert( f() ); //fails in MSVC
В GCC и Clang static_assert проходит, но не в MSVC. Онлайн-демо: https://gcc.godbolt.org/z/Ehn7c7v7f (тот же результат в последней версии Visual Studio 2022).
Это допустимая константная оценка в Visual Studio в соответствии с C++. стандарт?
Подробнее здесь: https://stackoverflow.com/questions/694 ... ables-in-c