2013-06-11 8 views
8

Ist es möglich, eine static const Array mit Werten von Template-Parametern Packung zu schaffen? Ich habe versucht, den folgenden Code, aber gcc 4.8.1 gibt "Fehler: Parameter nicht erweitert Pack"C++ 11 Erstellen statisches Array aus einer Parameterpaket

template<int... N> 
struct ARRAY_OF_DIMS 
{ 
    static constexpr size_t NDIM = sizeof...(N); 
    static const int DIMS[NDIM]; 
}; 

template<int... N> 
const int ARRAY_OF_DIMS<N>::DIMS[ARRAY_OF_DIMS<N>::NDIM] = { N... }; 
+2

Wenn die Lösung ist in der Tat richtig Sie es so markieren sollte (das Häkchen neben seiner Antwort). Denken Sie auch daran, Antworten auf einige Ihrer anderen Antworten richtig zu schreiben, wenn es richtige Antworten gibt. – SirGuy

Antwort

14

mit Versuchen:

template<int... N> 
const int ARRAY_OF_DIMS<N...>::DIMS[ARRAY_OF_DIMS<N...>::NDIM] = { N... }; 

Das Parameter Pack in ARRAY_OF_DIMS<N> ist derjenige, der ist nicht erweitert werden. Jedes Parameter Pack, das kein Argument zu sizeof... ist muss erweitert werden.

+0

Danke, das hat funktioniert! – user2052436

Verwandte Themen