【发布时间】:2021-03-25 19:25:14
【问题描述】:
为什么char* pstr="hello"; pushArg(pstr); 仍然调用这样的模板?
你看已经有&&(!std::is_same<char, typename std::remove_cv_t<std::remove_pointer_t<T>>>::value)了。
template <typename T,
typename std::enable_if<(!std::is_same<lua_CFunction, T*>::value)
&& std::is_pointer<T>::value
&& (!std::is_same<std::string*, T>::value)
&& (!std::is_same<char, typename std::remove_cv<std::remove_pointer<T>>>::value)
&& (!std::is_same<unsigned char, typename std::remove_cv<std::remove_pointer<T>>>::value)
int pushArg(T& val)
{
}
【问题讨论】:
-
char* pstr="hello";无法编译,缺少const。 -
@Jarod42 未启用 -Wall 或类似功能时的警告。
标签: c++ c++11 templates typetraits enable-if