3
cppreference에
, std::result_of
을 사용하는 올바른 방법이라고 기록됩니다올바른 방법으로 invoke_result를 사용 하시겠습니까?
template<class F, class... Args>
std::result_of_t<F&&(Args&&...)>
// instead of std::result_of_t<F(Args...)>, which is wrong
my_invoke(F&& f, Args&&... args) {
/* implementation */
}
나는 std::invoke_result_t
사용해야 궁금 해서요 : invoke_result_t
:
template<class F, class... Args>
std::invoke_result_t<F&&, Args&&...> my_invoke(F&& f, Args&&... args);
또는 :
template<class F, class... Args>
std::invoke_result_t<F, Args...> my_invoke(F&& f, Args&&... args);
을
템플릿 인수를 다른 곳에서 가져오고 참조 할 수없는 경우가있을 수 있습니다.이 경우 '&&'버전은 일반 버전이 아니라면 오류가 발생할 수 있습니다. 그러나 꽤 멀리 가져 왔습니다. –