gpt4 book ai didi

c++ - 根据不同的类型在运行时实例化一个模板类

转载 作者:行者123 更新时间:2023-11-30 05:29:58 25 4
gpt4 key购买 nike

程序组织如下:

  1. 首先,它读取包含类型信息的文件。

  2. 它必须根据该类型实例化一个类。

例如,如果 type = float ,我必须实例化一个对象 A<float> a .

目前我通过普通 if-else 处理这项工作声明。

if (type == "float") {
A<float> a;
}

我想知道是否有一些方法可以像处理变量或其他东西一样处理类型,这让我可以通过 A<specific_type> a 创建对象没有判断力?

最佳答案

你是在要求这样的东西吗?

template <class A>
void workWithA(void)
{
A a ;
}

std::map<std::string, void (*f_ptr)(void)> functions ;

functions["float"] = &workWithA<float> ;
functions["int"] = &workWithA<int> ;
...

然后你就可以写了

std::string type ;
auto it = functions.find(type) ;
if (it != functions.end())
it->second() ;

关于c++ - 根据不同的类型在运行时实例化一个模板类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36215536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com