0
我有一个静态常量变量的类,需要根据模板参数中的变量类型进行不同的初始化。有没有办法做到这一点没有专业化?在C++中初始化一个依赖于模板参数中的类型的变量
在我的头文件我有:
template<class Item>
class CircularQueue {
public:
static const Item EMPTY_QUEUE;
...
试图在.cpp文件中对其进行初始化:
template<typename Item> const Item CircularQueue<Item>::EMPTY_QUEUE = Item("-999");
我想它初始化为-999不管它是一个int,双或字符串,但是在上面的代码中,我得到一个“从'const char'转换为'int'丢失精度[-fpermissive]”错误。
也许创建可以代替专门的模板初始化帮手。 'template class Initializer {...};' –
不,你需要专业化。您不需要专门研究整个'CircularQueue'模板类,但是您可以使用单独的专用辅助类来初始化'EMPTY_QUEUE'。 –