으로 기능 유형을 제외하고 당겨 분리 this question 추천 클래스 템플릿을 사용하여 기능 유형에 대한 대답은 : 여기 수행되고 있었는지 연구로전문 기능
template <typename T>
struct function_args {};
template <typename R, typename... Args>
struct function_args<R(Args...)> {
using type = tuple<Args...>;
};
template <typename T>
using decltypeargs = typename function_args<T>::type;
나는 function_args
를 다시 작성했습니다. 나는 decltypeargs
템플리트에 대한 필요성을 없애기 위해 함수를 사용하여이 작업을 시도했습니다. 그러나 자신은 부적절한 구문에 빠져 발견 :
template <typename T>
tuple<> myTry();
template <typename Ret, typename... Args>
tuple<Args...> myTry<Ret(Args...)>();
내 희망은 대신 decltypeargs<decltype(foo)>
를 호출해야하는 tuple
유형을 얻을 수 decltype(myTry<decltype(foo)>())
를 호출 할 수 있었다. 함수 선언으로이를 수행 할 수있는 방법이 있습니까?
. 하지만 다른 질문을하고 싶습니다. 별로 나에게 명확하지 않습니다. – Arunmu
@Arunmu 내 질문에 답한 것처럼 들리 네. 그러나 말씨를 개선하는 방법을 확신하지 못합니다. 함수의 반환과 인수를 따로 떼어 내려고 노력 중이며,이를 수행하기 위해 전문화를 사용해야합니다. 나는 그걸 기능으로하고 싶었지만 내가 할 수없는 것처럼 들린다. 그게 더 명확한가요? –
무엇을 하려는지 확실하지 않습니다. 'myTry()'는 사용하지 않는 것보다 더 많은 타이핑을합니다 - 해결하려는 문제는 무엇입니까? – Barry