我不知道这是否可能,但也许我想要的还有其他解决方案。我正在尝试从设置文件中获取设置。它们可以是字符串(如名称)、整数或布尔值。当然,它们作为文本存储在文件中,但我将创建一个用于打开和返回设置的类,但不是作为字符串,而是作为它们中的每一个实际上是什么。
class Settings {
public:
Settings(string FileName);
template <class T> T Setting(string SettingName);
}
例如,构造函数将加载文件、解析设置并将它们存储为地图。现在,当我调用 Setting 成员函数时,我希望它识别所请求设置的值是什么类型(如果是数字,整数,如果是“真”或“假”布尔值,如果是字母数字字符串)并返回该类型的值。一个例子
Settings UserPreferences("Preferences.cfg");
bool AutoLogin = UserPreferences.Setting("autologin"); // return bool
string UserName = UserPreferences.Setting("username"); // return string or char*
我查看了模板,但看起来我必须在创建 Settings 对象时指定我期望的变量,但这不是重点。我很高兴声明要返回的变量类型如下:
bool AutoLogin = UserPreferences.Setting<bool>("autologin");
string UserName = UserPreferences.Setting<string>("username");
但我不知道这是否可能。你怎么看?