これは私の(おそらく少し奇妙な)考えstd::set
です。後で使用するためにいくつかのものを含むオブジェクトを定義したいとしますが、残念ながら、どのタイプがstd::set<not-sure>
テンプレートargとして渡されるかわからないため、このnot-sure
タイプが決定されます。次のような文字列を介して:
class X {
public:
foo()
{
char not_sure_type[20];
scanf("%s", not_sure_type);
if (strcmp(not_sure_type, "int"))
// then std::set<int>
else if (// "char")
// then std::set<char>
}
private:
void * _set;
};
このようにして、それstd::set<int>
がインスタンス化されるかどうかを判断できますよね?しかし、どう_set
すればあなたが指さなければならないことを知ることができますstd::set<int>
か?それを知らずに、私も前後static_cast
にキャストするために使用する_set
ことvoid *
はできません。std::set<int>*
std::set<int>
では、後で使用するために、データメンバーのように保存できますか?
どんなアイデアでも大歓迎です。