重複の可能性:
C++ での最小限のリフレクション
基本的に、クラス名を に保存しchar *
ていますが、そのクラスのインスタンスを作成するにはどうすればよいですか。以下は私が考えていたことです。テンプレートパラメータとして渡すTest
とうまくいきますが、このようなことをしようとTest *t = CreateType<ptr>
するとうまくいきません。
これを機能させる方法はありますか。
class Test{
public:
Test() {
}
~Test() {
}
};
template <typename T>
T* CreateType() {
return new T;
}
int main ( int argc, char **argv) {
char *ptr = "Test";
Test *T = CreateType<Test>();
return 0;
}