Is it possible to figure out the parameter type and return type of a lambda?
질문에서 function_traits
구조체의 멋진 구현은/linked으로 표시됩니다.기본 매개 변수에 대한 함수 특성
이 구조체는 각 매개 변수
에 대한
R(Ts ...)
)
- 반환 형식
- 함수 호출 유형
- 함수 인수에 대응을 결정할 수 있습니다 할 특성 기본 매개 변수로 제대로 작동합니다. 즉, 전체 유형 (모든 기본 매개 변수 포함) 만 함수의 유형으로 간주됩니다.
주어진 함수 매개 변수가 기본 매개 변수인지 여부를 확인할 수있는
function_trait
을 작성할 수 있습니까?
특히, 나중에 함수에 전달하는 기능의 최소/최대 인수에 대응에 따라 주어진 구현을 활성화/비활성화 할 수 SFINAE를 사용하여이 특성을 사용, 그리고 매개 변수 팩의 크기 것 함수에 전달됩니다.
분명히이 예제는 다소 인위적이다.
이것은 함수 포인터/참조를 통해 이동할 때마다 기본 인수가 더 이상 작동하지 않는다는 것을 의미합니다 (필수 항목이 됨). 맞습니까? 'auto bar2 = bar; '와 같은 뜻이다. – leemes
맞다. 기본 인수는 직접 호출 사이트에서만 관련이 있습니다. –
@SebastianRedl 설명해 주셔서 감사합니다. 나는 방금 테스트했습니다. [템플릿 매개 변수를 통해 전달 될 때 불가능합니다] (http://ideone.com/bkXnN9), 다소 슬픈 일입니다. – leemes