長さや引数の数が不明なメッセージを作成したいと思います。私は1つのベクトルに異なるテンプレートタイプを入れる方法
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);
}
(ように文字列とも同じ)と私は1つのベクトルにそれをすべてをプッシュしよう。私は試しました
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