Padrão de modelo curiosamente recorrente (CRTP) com constexpr estático em Clang
Considere o meu exemplo simples abaixo:
#include <iostream>
template <typename T>
class Base
{
public:
static constexpr int y = T::x;
};
class Derived : public Base<Derived>
{
public:
static constexpr int x = 5;
};
int main()
{
std::cout << Derived::y << std::endl;
}
Em g ++, isso compila bem e imprime5
como esperado. No Clang, no entanto, ele falha ao compilar com o errono member named 'x' in 'Derived'
. Tanto quanto eu posso dizer, este é o código correto. Existe algo errado com o que estou fazendo e, se não, existe uma maneira de ter esse trabalho em Clang?