std::is_nothrow_invocable 有成员函数
std::is_nothrow_invocable with member function
如何检查 C++17 中的成员函数是否不可调用?
我知道我的 class C
有一个名为 f
的成员函数,我想知道它是否不能用 int
作为参数调用。
#include <type_traits>
struct C{
void f(int){}
};
int main(){
// How to use is_nothrow_invocable_v???
static_assert(std::is_nothrow_invocable_v< &C::f, int >);
}
您可以使用以下其中一项:
noexcept(std::declval<C>().f(42))
或
std::is_nothrow_invocable_v<decltype(&C::f), C, int>
注意:调用成员函数需要一个实例。
如何检查 C++17 中的成员函数是否不可调用?
我知道我的 class C
有一个名为 f
的成员函数,我想知道它是否不能用 int
作为参数调用。
#include <type_traits>
struct C{
void f(int){}
};
int main(){
// How to use is_nothrow_invocable_v???
static_assert(std::is_nothrow_invocable_v< &C::f, int >);
}
您可以使用以下其中一项:
noexcept(std::declval<C>().f(42))
或
std::is_nothrow_invocable_v<decltype(&C::f), C, int>
注意:调用成员函数需要一个实例。