Есть простая идея : чтобы не открывать доступ к параметрам программы, хранимым в Cfg.h и не писать кучу селекторов и модификаторов я создал два шаблонных метода GetValue и SetValue
Вот содержимое файла Cfg.h
//************************************************************
#ifndef _CFG_H_
#define _CFG_H_
#include <string>
class ParserCfg
{
public:
template <class T>
T GetValue(const std::string name, T defaultValue );
template <class T>
void SetValue(const std::string name, T Value);
private:
std::string inputFile_;
std::string configFile_;
bool completed_;
};
#endif //_CFG_H_
//************************************************************
Но мне приходится в реализации этого класса явно прописывать реализацию методов для всех типов :
//*************************************************************
#include "Cfg.h"
template <>
std::string ParserCfg::GetValue(const std::string name, std::string defaultValue )
{
if ( name == "inputFile_") return inputFile_;
};
template <>
void ParserCfg::SetValue(const std::string name, std::string value)
{
if ( name == "inputFile_") inputFile_ = value;
};
template <>
bool ParserCfg::GetValue(const std::string name, bool defaultValue )
{
if ( name == "completed_") return completed_;
};
template <>
void ParserCfg::SetValue(const std::string name, bool value)
{
if ( name == "completed_") completed_ = value;
};
//*************************************************************
Иначе у меня ничего не работает (пишет undefined reference to ....)
Я бы хотел сделать обобщённую реализацию :
template <class T>
void ParserCfg::SetValue(const std::string name, T value)
{
if ( name == "completed_") completed_ = value;
};
Почему это не работает???
В чём моя ошибка???

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Вспоминая C++. Проблемы с линковкой template'ов (2007)
- Форум does not name a type... (2013)
- Форум Шаблоны С++ (2005)
- Форум Шаблоны, почему не работает? (2017)
- Форум Logger on C++ ... вроде все правильно ... (2005)
- Форум [C++ такой C++]Шаблонные методы и разделение на .h/.cpp (2010)
- Форум Шаблон класса (2008)
- Форум Проблема с ALSA (2010)
- Форум Такое вообще легально? (2019)
- Форум oglplus - не видятся некоторые методы и ничего не автодополняется (2012)