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>

注意:调用成员函数需要一个实例。