다음을 통해 공유


result_of Class

겹쳐진된 개체 호출의 반환 형식입니다.

template<class Ty>
    struct result_of {
    typedef T0 type;
    };

매개 변수

  • Ty
    함수 호출에 대 한 설명 (설명 부분 참조 섹션).

설명

템플릿 클래스의 멤버를 정의 합니다. type 함수 호출의 반환 형식에 대 한 동의어로 설명 템플릿 인수가 Ty.템플릿 인수 형식 이어야 합니다. Fty(T1, T2, ..., TN)여기서 Fty 호출 하는 형식입니다.적용 되는 반환 형식에 따라 첫 번째 다음 규칙의 서식 파일을 결정 합니다.

  • 경우 Fty 함수 형식에 대 한 포인터는 R(*)(U1, U2, ..., UN) 반환 형식인 R.

  • 경우 Fty 함수 형식에 대 한 참조 인 R(&)(U1, U2, ..., UN) 반환 형식인 R.

  • 경우 Fty 멤버 함수 형식에 대 한 포인터는 R(U1::*)(U2, ..., UN) 반환 형식인 R.

  • 경우 Fty 데이터 멤버 형식에 대 한 포인터는 R U1::* 반환 형식인 R.

  • 경우 Fty 멤버 형식 정의 포함 하는 클래스는 result_type 반환 형식인 Fty::result_type.

  • 경우 N 0 (즉, Ty 는 Fty()) 반환 형식인 void.

  • 경우 Fty 라는 멤버 템플릿 포함 하는 클래스는 result 반환 형식인 Fty::result<T1, T2, ..., TN>::type.

  • 다른 모든 경우에이 오류가 발생합니다.

예제

 

// std_tr1__functional__result_of.cpp 
// compile with: /EHsc 
#include <functional> 
#include <iostream> 
 
double square(double x) 
    { 
    return (x * x); 
    } 
 
template<class Fun, 
    class Arg> 
    void test_result(const Fun& fun, Arg arg) 
    { 
    typename std::result_of<Fun(Arg)>::type val = fun(arg); 
    std::cout << "val == " << val << std::endl; 
    } 
 
int main() 
    { 
    test_result(&square, 3.0); 
 
    return (0); 
    } 
 
  

요구 사항

헤더: <functional>

네임 스페이스: std