我尝试检查T
函数do_math()
中的模板类是否有可能在复制赋值运算符中引发异常。
但是下面的代码会抛出一个错误:
template<class T>
void do_math()
noexcept(noexcept(T(std::declval<T>())) && noexcept(std::declval<T>() + std::declval<T>()) && noexcept(std::declval<T>().operator = (std::declval<T>())) )
{
}
main.cpp:9:135: error: request for member ‘operator=’ in ‘std::declval<int>()’, which is of non-class type ‘int’
noexcept(noexcept(T(std::declval<T>())) && noexcept(std::declval<T>() + std::declval<T>()) && noexcept(std::declval<T>().operator = (std::declval<T>())) )
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
请帮我写正确的支票。