gpt4 book ai didi

c++ - 从 std::string 获取类型,C++

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:37:25 25 4
gpt4 key购买 nike

有一次我在面试中被问到一个问题。

因此我有一个函数void f(std::string),我调用一个函数作为这个f("int")。因此我的函数必须在其主体中创建一个本地 int x。有没有办法从 const char* 获取类型。我知道 boost::mpl::vector 确实解决了这类问题。谁能告诉我技术?

最佳答案

如果应该支持用户定义的类型,那么不提供显式映射是不可能的。但是对于内置类型,它是可以做到的。您可以为类型定义实现一个解析器,并将其与函数模板结合起来,以迭代方式构造类型。像这样:

template <class T>
void parseType(std::string type)
{
std::string spec = extractOneSpecifierFrom(type);
if (spec == "[]") {
parseType<T[]>(type);
} else if (spec == "*") {
parseType<T*>(type);
} else if (spec == "const") {
parseType<const T>(type);
} // ... etc.
}

关于c++ - 从 std::string 获取类型,C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31263660/

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