在特定课程中,
它正在运作..
private:
template <typename U>
int64_t parseValue(const std::string& str
, typename std::enable_if<std::is_signed<T>::value, U>::type* = 0
) const
{
return stoll(str, 0, base_);
}
template <typename U>
uint64_t parseValue(const std::string& str
, typename std::enable_if<std::is_unsigned<T>::value, U>::type* = 0
) const
{
但下面的代码不起作用。我不知道为什么。我不知道是否缺乏专业化概念或其他问题。
private:
template <typename U>
int64_t parseValue(const std::string& str
, typename std::enable_if<std::is_signed<T>::value>::type* = 0
) const
{
return stoll(str, 0, base_);
}
template <typename U>
uint64_t parseValue(const std::string& str
, typename std::enable_if<std::is_unsigned<T>::value>::type* = 0
) const
它不起作用。
你可以解释一下吗?我不知道为什么..答案 0 :(得分:0)
在第二种情况下,您未在U
语句中使用enable_if
。仅当表达式取决于推导的模板参数之一时,SFINAE才有效。