2013-07-02 3 views
0

는 다음과 같은 코드를 생각해 보자. 나는 이것을 알고 있으며 나는이 특별한 예에 관한 대안을 찾지 않는다.는 CRTP 및 과부하 반환 형식 공제

제 질문은 : get의 올 Y 른 과부하의 리턴 유형을 얻기 위해 전달 된 Misc 유형에 따라 /*SOMETHING*/은 어 @ 것이됩니까?

+3

를? 이것은 잘 작동합니다.'class Return = decltype (this-> get (std :: declval () ...))'. – Xeo

+0

@Xeo : 내가 말한다면'const return '을'Return'으로 바꿀 수 있습니까? – Vincent

+0

"완전 반환"하려는 경우, 즉 기본 기능이 제공하는 것을 정확하게 반환하려면 예. – Xeo

답변

2

잘해야한다 (<type_traits>)에서 std::declvaldecltype를 사용 : 당신이 유추 수익률 할 것 같은

class Return = decltype(std::declval<Derived const>().get(std::declval<Misc>()...))