분명히 decltype (foo())를 사용하여 함수의 반환 유형을 얻을 수 있지만 foo가 작동하지 않는 인수를 사용하는 경우 foo에 일부 더미 인수를 전달해야 작동 할 수 있습니다. 그러나 인자를 넘겨주지 않고 함수의 리턴 타입을 얻는 방법이 있습니까?인수를 전달하지 않고 함수의 반환 형식을 가져올 수 있습니까?
3
A
답변
7
(이 경우 당신이 std::result_of
같은 것을 사용한다, 그러나 당신이 그 인수의 유형을 제공 할 것입니다) 인수의 형태에 의존하지 않는 반환 형식을 가정하면, 당신은 간단한 형식을 쓸 수 있습니다 당신이 함수 타입의 리턴 타입을 추론 할 수 있습니다 특성은 :
#include <type_traits>
template<typename T>
struct return_type;
template<typename R, typename... Args>
struct return_type<R(Args...)>
{
using type = R;
};
int foo(double, int);
int main()
{
using return_of_foo = return_type<decltype(foo)>::type;
static_assert(std::is_same<return_of_foo, int>::value, "!");
}
6
C++ 11은 std::result_of
을 제공합니다. 함수가 인수, 당신은 std::declval
에 "더미"인수를 제공 할 수 있습니다 걸리는 경우
관련 문제
- 1. 함수의 반환 형식을 얻는 방법
- 2. 다른 함수의 인수를 다른 함수의 인수로 전달하지 않고 다른 함수의 변수를 선언하는 방법은 무엇입니까?
- 3. 함수의 반환 형식을 표시하려면 어떻게해야합니까?
- 4. 스칼라에서 익명 함수의 반환 형식을 지정할 수 있습니까?
- 5. 함수를 호출하지 않고 함수의 반환 형식을 추출합니다 (템플릿을 사용합니까?)
- 6. 작업 필터에서 작업의 반환 형식을 가져올 수 있습니까?
- 7. 함수에서 함수의 반환 형식을 동적으로 만들거나 설정하십시오.
- 8. javascript/typescript에서 익명 함수의 반환 형식을 지정해야합니까?
- 9. 선택기 변수에서 인수를 가져올 수 있습니까?
- 10. zend url 도우미 매개 변수를 재설정하고 urlOptions를 전달하지 않고 현재 URL을 가져올 수 있습니까?
- 11. OpenCover가 NUnit에 인수를 전달하지 않음
- 12. Scala에서 함수의 반환 유형을 일치시킬 수 있습니까?
- 13. 함수의 반환 값을 "얻을"수 있습니까?
- 14. 응용 프로그램. 인수를 다시 전달하지 않고 다시 시작하십시오.
- 15. 개체에 데이터 테이블 반환 형식을 가져올 수 없습니다.
- 16. 인수를 전달하지 않는 비동기 클래스
- 17. 이 인라인 함수의 범위 밖으로이 데이터를 가져올 수 있습니까?
- 18. exec PHP가 인수를 전달하지 않음
- 19. 레일 관찰자가 인수를 전달하지 않음
- 20. 함수의 반환 유형이 필요합니다.
- 21. set_trace_func에서 반환 할 값을 가져올 수 있습니까?
- 22. 이름 형식을 가져올 수 없습니다.
- 23. 컴파일러는 함수의 인수를 저장합니까?
- 24. pls이 함수의 인수를 설명합니다
- 25. Visual Studio 2008 (C++)에서 함수의 반환 형식을 인쇄하는 방법?
- 26. 비공개 API 함수의 인수를 어떻게 확인할 수 있습니까?
- 27. 메타 함수의 유형과 템플릿 인수를 어떻게 추론 할 수 있습니까?
- 28. Asynctask에서 반환 형식을 변경하십시오.
- 29. Go에서 함수의 반환 값 유형을 알 수 있습니까? 예를 들어
- 30. Dart에서 생성자를 사용하지 않고 클래스의 InstanceMirror를 가져올 수 있습니까?
반환 유형은 인수 유형 –
에 의존하는 징벌 (*) (인수를 ...) 복용 템플릿 함수에 인수로 함수에 합격하자 컴파일러는 R을 추론합니다. 과부하없이 작동 할 수 있습니다. –