繁体   English   中英

C++ 如何检查变量是否为 std::string 类型?

[英]C++ How to check if variable is std::string type?

我正在使用模板函数,并且需要一种测试变量是否为 std::string 类型的方法,然后将其与整数输入等区分开来,因为我需要对字符串进行的操作与整数不同。 我在使用 typeid 来执行此操作时遇到问题。

只是超载:

template<typename T>
void myFunc(T t) {/* */}

void myFunc(std::string s) {/* */}

如果不同的类型需要发生不同的事情,它可能应该在不同的功能中。 这样代码就不会被类型检查弄得乱七八糟。 您应该更愿意让编译器担心将重载与类型匹配。

如果您在模板上下文中,并且需要调用myFunc<T>(t)类的函数,那么您可以完全专门化:

template<>
void myFunc<std::string>(std::string s) {/* */}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM