Пожалуйста, обратите внимание на следующий код:Почему я не могу использовать указатель constexpr в качестве параметра шаблона в C++ 11?
template <typename T, typename P, T P:: *s> struct H {};
struct AA { int i; };
int main()
{
typedef int AA::*PI;
constexpr PI pi = &AA::i;
H<int, AA, &AA::i> h1; // OK
// H<int, AA, pi> h2; // compile error
}
У меня есть указатель член pi
указывающий на AA::i
. pi
является переменной constexpr
. Почему я не могу использовать его в качестве параметра шаблона, хотя напрямую работает &AA::i
?
DIS для C++ 14 это N4141 Я думаю, что вы можете проверить у GitHub самостоятельно. –
Тем не менее, я сравнил их, и действительно, изменение было применено только * после * C++ 14. –
Спасибо за ваш искренний ответ! –