I declarar una clase de plantilla con todos los parámetros que tienen argumentos por defecto, por ejemplo:typedef una plantilla con todos los argumentos predeterminados
template<typename TYPE = int>
class Foo {};
Entonces los dos siguientes son equivalentes:
Foo<int> one;
Foo<> two;
Sin embargo, I' m no está permitido hacer:
Foo three;
¿Es posible lograr eso con un typedef
al mismo nombre pero sin los soportes, así:
typedef Foo<> Foo;
Puede ser demasiado tarde, pero no utilice definir para este propósito. Causará problemas de muchas maneras. NUNCA podrás usar foo con un tipo diferente. NUNCA podrás usar foo en otro espacio de nombres. –