これが可能かどうかはわかりませんが、私が望むものに対する他の解決策があるかもしれません。設定ファイルから設定を取得しようとしています。文字列 (名前など)、整数、またはブール値にすることができます。もちろん、それらはファイル内にテキストとして保存されますが、設定を開いて返すためのクラスを作成しますが、文字列としてではなく、それぞれが実際に何であるかとして.
class Settings {
public:
Settings(string FileName);
template <class T> T Setting(string SettingName);
}
コンストラクターはファイルをロードし、設定を解析して、たとえばマップとして保存します。ここで、Setting メンバー関数を呼び出すときに、要求された設定の値の型を特定する必要があります (数値の場合は整数、「true」または「false」の場合はブール値、英数字の場合は文字列)。その型の値を返します。例
Settings UserPreferences("Preferences.cfg");
bool AutoLogin = UserPreferences.Setting("autologin"); // return bool
string UserName = UserPreferences.Setting("username"); // return string or char*
テンプレートを見てみましたが、設定オブジェクトを作成するときに期待する変数を指定する必要があるようですが、それは重要ではありません。次のように返す変数の型を宣言することに満足しています。
bool AutoLogin = UserPreferences.Setting<bool>("autologin");
string UserName = UserPreferences.Setting<string>("username");
しかし、それが可能かどうかはわかりません。どう思いますか?