我想做这样的事情:
template<template<int d, class>
class container,
int dim = d, typename content_data_type>
class MyClass {
};
我的编译器告诉我这是不可能的,因为“d”没有在以下范围内定义:
template<int d, class> class container
是否有另一种方法可以做到这一点?
在此先感谢您对此主题的任何帮助。
更新:
@ Rook:我想稍后在专业化中访问“dim”和“content_data_type”参数
例如
普通班:
template<template<int d, class>
class container>
class MyClass {
};
规格。班级:
template<>
class MyClass<vec> {
vec c; // Error: vec needs template parameters
};
这给了我一个错误,因为我使用了我的模板类“vec”而没有模板参数,我希望编译器能够推断出模板参数,例如当我使用
MyClass<vec<3, float> >
那么变量“c”应该有类型
vec<3, float>
因为这不起作用,我想我可以创建两个显式模板参数“dim”和“content_data_type”,我可以像这样在专业化类中访问它们:
template<template<int d, class t>
class container,
int dim = d, typename content_data_type = t>
class MyClass<vec> {
vec<dim, content_data_type> c;
};
...再次抱歉,对于最初的问题不够具体:)