struct Messages
{
template <typename V>
static const char* message() {return "test mesage";}
};
template <int Min, class M=Messages>
struct Test: public M
{
Test()
{
M::message<int>(); //error: expected primary-expression before 'int'
}
};
int main()
{
Test<5, Messages> t;
}
Sospetto che questo abbia a che fare con una dipendenza reciproca, come il codice di Test dipende dalla classe base M il cui metodo è specializzato all'interno Test. È corretto?Perché non posso chiamare un metodo basato su modello di una classe template derivata da
Grazie, è tutto. Non conoscevo questo uso della parola chiave 'template' per disambiguare i nomi dipendenti. –