가변 템플릿 클래스의 함수 포인터 인수 유형에 액세스
이 문제는 임의 인수가 있는 함수에 대한 일반 펑터 생성에 관한 이전 쿼리에서 발생합니다. 기울기. 주어진 functor 클래스인 Foo를 사용하면 원하는 수의 인수로 함수 포인터를 호출할 수 있습니다. 그러나 이제 작업은 Foo 생성자 내의 함수 포인터에서 인수 유형을 추출하는 것입니다.
Foo 클래스를 정의할 때 인수 유형은 생성자의 함수 포인터 선언에서 ARGS...로 캡슐화됩니다. 인수 값은 생성 시 사용할 수 없지만 함수 포인터 자체 내에서 해당 유형에 액세스할 수 있습니다.
이러한 인수 유형을 확인하려면 function_traits 클래스를 활용할 수 있습니다.
template
struct function_traits;
template>
{
// Number of arguments
static const size_t nargs = sizeof...(Args);
// Return type
typedef R result_type;
// Argument types at specified index
template <size_t i>
struct arg
{
typedef typename std::tuple_element<i, std::tuple<Args...>>::type type;
};
};
Foo 생성자 내에서 다음과 같이 function_traits를 사용하여 이러한 인수 유형에 액세스할 수 있습니다.
templatefunction_traits를 사용하면 Foo 클래스 내에서 인수 유형을 추출하고 활용할 수 있으므로 함수 서명을 기반으로 정교한 작업이 가능합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3