2014-06-07 3 views
8

:추론 된 인수와 동일한 유형의 로컬 변수를 만드는 가장 쉬운 방법은 무엇입니까? 즉

지금까지
[](auto const& foo) { 
    ??? bar; // should be same base type as foo, minus const& 
} 

, 내가 사용 :

typename std::remove_const<typename std::remove_reference<decltype(foo)>::type>::type combination 

하지만 정말 바라고은 쉽게 대안을 프로그래머!

+1

내가 읽은 한, 나는 '자동'형 공제 의미론 이었지만 표현식을 할당하지 않았기 때문에'decltype'을 사용해야하는 곳에서. 그들은 reverse 문제에 대해'decltype (auto) foo = bar'를 도입했으나 지금은'decltype (bar) foo;')를 원합니다. – mmocny

답변

10

std::decay<decltype(whatever)>::type 또는 decay_tstd 라이브러리가 업데이트되었습니다.

다양한 종류의 함수 인수 감소를 에뮬레이션합니다. arg가 함수에 대한 참조 일 경우 처리합니다. reference-to-array에서는 포인터가 생성되기 때문에 덜 이상적입니다.

다르게 처리하고 싶다면 스스로 롤백해야합니다.

+0

+1'decay'가 제거 된 참조를 알지 못했습니다 – Praetorian

+0

Brilliant! 네,'std :: decay_t'에 대한 지원이 훨씬 좋습니다. – mmocny

관련 문제