std :: string을 받아서 std :: map에서 올바른 변수를 찾아서 반환하는 단일 get 템플릿 메소드가있는 클래스를 만들고 싶습니다.다른 타입 변수를 반환하는 단일 get 메소드
이 표준은 ::,지도는 어떤 타입의 변수를 저장해야합니다, 그래서 부스트 :: 하나를 사용 지금까지 표준 : :지도가 다음과 같습니다 get 함수에 대한
std::map<std::string, boost::any> variables_;
, 내가 뭔가를 시도 이렇게 :
template <typename T>
T get(std::string& parameter)
{
return variables_[parameter];
}
하지만 내 질문은, 심지어 할 수 있다는 것입니다. 그렇다면 어떻게?
기본적인 개념은 클래스의 모든 특정 변수에 특정 메소드를 작성하고 싶지 않으므로 다른 클래스는 모든 get 메소드에 대해 알 필요가 없다는 것입니다.
감사합니다.
ps : 내가 왜 이것을 원 하냐고 묻는 분들은 여기에 이력서가 있습니다. 많은 알고리즘이 있습니다. 특정 순서로 실행되며, 마지막으로 이미 실행 된 알고리즘에 대해 사용할 것입니다. 그래서, 내가 원하는 것은 xml 파일을 만드는 것입니다. 이것은 어떤 알고리즘이 어떤 순서로 실행되고 다른 알고리즘에서 어떤 데이터가 사용될 것인지를 알려줍니다.
예를 들어, 알고리즘 A에는 "threshold"라는 변수가 있습니다. 알고리즘 B에는 해당 정보가 필요하므로 일반적으로 A.getThreshold와 같은 것을 사용하여 A에서 요청해야합니다. 그러나 내가 아는 한 , 나는 XML 파일에서 문자열에있는 객체 이름을 호출 할 수 없다. 그래서 내 솔루션은 내가 원하는 변수 이름을 전달하는 함수 만 가질 것이고 함수는 그것을 나에게 돌려 줄 것이다.