так что у меня есть это:
class SettingBase {
public:
virtual ~SettingBase() { }
};
template<typename T>
class Setting : private SettingBase {
friend class Section;
public:
std::string const &get_name() { return name; } // and my compiler
const char *get_name() { return name.c_str(); } // doesn't like this.
T const &get_value() throw() { return value; }
private:
Setting(std::string name, T value) : name(name), value(value) { }
Setting(const char *name, T value) : name(std::string(name)), value(value) { }
std::string name;
T value;
};
и затем gcc говорит
config.cpp:74:17: error: ‘const char* Setting<T>::get_name()’ cannot be overloaded
config.cpp:73:24: error: with ‘const std::string& Setting<T>::get_name()’
Есть какая-то конкретная причина для этого?
Спасибо
Джулиан.