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

时间:2016-11-11 19:33:53

标签: c++ string

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

1 个答案:

答案 0 :(得分:6)

过载:

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

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

如果不同的类型需要发生不同的事情,它可能应该是不同的功能。这样,代码就不会被类型检查所混乱。您应该更喜欢让编译器担心将重载与类型匹配。

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

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