У меня есть класс со статической константной переменной, который мне нужно инициализировать по-разному в зависимости от типа переменной в параметре шаблона. Есть ли способ сделать это без специализации?Инициализация переменной в зависимости от типа в параметре шаблона в 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 будь то ИНТ, double или string, но в приведенном выше коде я получаю «cast from» const char 'to' int 'теряет точность [-fpermissive] ".
Может создать шаблонный помощник инициализации, которые могут быть специализированы вместо этого. 'template class Initializer {...};' –
Нет, вам нужна специализация. Вам не нужно специализировать весь шаблон шаблона 'CircularQueue', но вы можете использовать отдельный специализированный вспомогательный класс для инициализации' EMPTY_QUEUE'. –