Edu*_*yan 6 c++ algorithm types character-encoding stdstring
在面试中我被问到一个问题.
因此我有一个函数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.
}
Run Code Online (Sandbox Code Playgroud)