이것이 가능할 지 모르겠지만 내가 원하는 것에 다른 해결책이있을 수 있습니다. 설정 파일에서 설정을 가져 오려고합니다. 문자열 (이름 등), 정수 또는 부울 수 있습니다. 물론, 파일 안에는 텍스트로 저장되지만 설정을 열고 반환하기위한 클래스를 만들지 만 문자열은 아니지만 실제로는 각각의 설정과 같습니다.C++ - 다른 변수 유형을 반환하십시오.
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*
템플릿을 살펴 봤지만 Settings 개체를 만들 때 어떤 변수가 필요한지 지정할 필요가 있지만 그 점은 중요하지 않습니다. 변수의 유형을 다음과 같이 반환한다고 선언하면 행복합니다.
bool AutoLogin = UserPreferences.Setting<bool>("autologin");
string UserName = UserPreferences.Setting<string>("username");
그러나 이것이 가능한지는 확실하지 않습니다. 어떻게 생각해?
당신이 그 _tried_했습니다? –
나는 잘 작동하는 그런 수업을 가지고있다. 그래, 나는 가능하다고 생각한다. ;) – syam
반환 유형에 과부하 할 수 없다는 점을 감안할 때 매우 효과적이었습니다. – BoBTFish