[英]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.