Voglio creare una classe template con un membro che è un array constexpr. L'array necessita, ovviamente, di un'inizializzazione diversa a seconda del tipo, ma non posso dichiarare l'array senza inizializzarlo. Il problema è che non conosco i valori dell'array fino alla specializzazione del modello.Membro C++ Constexpr del tipo di modello
//A.hpp
template<typename T>
class A {
public:
static constexpr T a[];
constexpr A() {};
~A() {};
}
//B.hpp
class B: public A<int> {
public:
constexpr B();
~B();
};
//B.cpp
template<>
constexpr int A<int>::a[]={1,2,3,4,5};
B::B() {}
B::~B() {}
Come è possibile inizializzare correttamente A :: a [] in B?
Perché non http://coliru.stacked-crooked.com/a/44a76f94302bd9e2? –
Perché ho alcuni metodi che si basano su quel membro. – biowep