알 수없는 길이 또는 인수 개수가있는 메시지를 작성하고 싶습니다. 나는다른 템플릿 유형을 하나의 벡터에 넣는 방법
template <typename T> class Argument {
public:
int size;
int type;
T data;
};
같은과 (등등 문자열에 대한 같은) 일부 오버로드
addMessage (int value) {
Argument<int> *a = new Argument<int>;
vec.push_back(a);
}
내가 하나 개의 벡터로 모든 것을 밀어 시도와 간단한 템플릿을했다. 시도 :
std::vector<Argument* > vec;
std::vector<Argument<typename T>* > vec;
std::vector<Argument<>* > vec;
그러나이 중 아무 것도 작동하지 않는 것 같습니다. 이것을 할 수있는 방법이 있습니까? 미리 감사드립니다.
템플릿이 "모든 유형"을 보유하고 있다고 생각할 때 내가 틀렸던 것처럼 보입니다. 이 프로젝트에는 Boost가 사용되지 않았으므로 아직 상속을 유지할 것입니다. thx – DaClown
'std :: variant'는 C++ 17 이후부터 사용 가능합니다. http://en.cppreference.com/w/cpp/utility/variant – biowep