Pessoal ja resolvi, era um erro bobo, não podia iniciar a variavel valor com um valor
template<typename T, int VALOR = 125> <---- errado
template<typename T, int VALOR > <----- certo
só que acho engraçado funcionar em uma classe, se alguem souber me explicar porque
template<class T, int DIM = 25> <--- certo
***aproveitei para criador um hello world que me deu algumas dores de cabeça XD
#include <string>
#include <iostream>
using namespace std;
template<class T, int num_print = 10> class Hello_World {
public:
T _imprimi;
int __num;
void print(){
__num = num_print;
while(__num != 0){
cout<< _imprimi.show_hello_world()<< endl;
--__num;
}
}
};
class My_Hello_World
{
public:
string hello, world;
My_Hello_World(){ hello = "Hello"; world = "World"; }
virtual ~My_Hello_World(){}
string show_hello_world(){
string msg;
msg = hello + " " + world;
return msg;
}
};
int main(){
Hello_World<My_Hello_World, 20> __hello;
__hello.print();
return 0;
}
agora pergunto, como herdo uma classe que usa template ?? ja andei vendo em muito lugares e nenhum tem uma explicação de facil entendimento se alguem puder me dar um exemplo t++