최대 1 분 소요

개요

  • 호출 가능 여부 확인


예제

  • 코드
    #include <iostream>
    #include <string>
    #include <type_traits>

    using namespace std;

    class A {
    	public:
    		string func(int i) { return "a"; }
    };

    auto func(int i) { return "a"; };

    int main() {
    	cout << is_invocable<decltype(func), int>::value << endl;
    	cout << is_invocable<decltype(func), string>::value << endl;
    	cout << is_invocable_r<string, decltype(func), int>::value << endl;
    	cout << is_invocable_r<string, decltype(func), string>::value << endl;

    	cout << "------" << endl;

    	cout << is_invocable<decltype(&A::func), A, int>::value << endl;
    	cout << is_invocable<decltype(&A::func), A, string>::value << endl;
    	cout << is_invocable_r<string, decltype(&A::func), A, int>::value << endl;
    	cout << is_invocable_r<string, decltype(&A::func), A, string>::value
    		 << endl;

    	return 0;
    }
  • 실행 결과
    1
    0
    1
    0
    ------
    1
    0
    1
    0