【发布时间】:2011-08-24 14:44:54
【问题描述】:
我有一个简单的结构,其中包含我正在处理的应用程序中的 GUI 控件。 该结构的定义如下
template<class T>
struct guiControl
{
T minValue
T defaultValue
...
}
每个控件都由我的应用程序中的唯一整数 ID 标识。我想使用map<int, guiControl> 访问结构,但这是不允许的:
非特化类模板不能用作模板形参的模板实参... 使用类模板需要模板参数列表。
好的,这对我来说很有意义 - 编译器需要准确知道映射的值类型需要多少空间。但是我有没有其他方法可以近似这种行为 - 最好不要进入 Boost 或更复杂的类层次结构?
【问题讨论】:
-
从一个公共基类派生所有控件是否可行?
-
如果你可以使用没有模板的通用基类,也许你可以使用 map >
-
也许stackoverflow.com/questions/7154602/… 的答案之一有帮助?
-
一个唯一的整数 ID。说,也许你的意思是像一个指针?
-
真的有必要把这个类做成模板吗?只需使用
long long或double即可。
标签: c++ templates types containers