constexpr bool isShorter(const string &s1, const string &s2)
{
return s1.size() < s2.size();
}
编译时说:“错误调用非constexpr函数”
答案 0 :(得分:1)
您无法在constexpr
内部调用非constexpr
函数。而且,正如您从here所看到的那样,std::string::size()
不是constexpr
。
答案 1 :(得分:1)
std::string::size()
不是constexpr
使用文字c-string,你可以这样做:
template <std::size_t N1, std::size_t N2>
constexpr bool isShorter(const char (&)[N1], const char (&)[N2])
{
return N1 < Ns;
}