std :: string으로 임의의 개체를 저장할 수있는 구성 관리자 클래스를 만들려고합니다.추상 기본 클래스에 템플릿 함수가있는 방법은 없나요?
내 인터페이스 (추상 기본 클래스)에 대한 나의 시작 생각이
class ConfigurationManager
{
public:
static boost::shared_ptr<ConfigurationManager> create();
template<typename T>
virtual T getOption(const std::string& name) = 0;
};
(물론이 끔찍하게 불완전하다)하지만 내 컴파일러가 템플릿의 가상 수 없다는 것을 지적했다 (그리고 나는 깨달았다 나는 그 템플릿을 어쨌든 내보낼 수 없습니다.
내부적으로 boost :: any (거의 런타임에서 void를 체크하는 런타임)를 사용할 예정이지만 boost :: any를 내 인터페이스에 노출하고 싶지는 않습니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
정확히 무엇에 대해 가야합니까? –
@Oli 내가 질문에 게시 한 구문 학적으로 불가능한 인터페이스를 시뮬레이트합니다. – Lalaland
다형 함수 템플릿은 실제로 가능하지 않더라도 그렇게하고 싶습니까? –