2016-07-22 5 views
0

auto을 최대한 많이 사용하여 코드의 데이터 유형을 변경하는 것이보다 유연합니까? 범위 기반의 for 루프를 사용하는 경우 항상 자동을 사용하는 것이 효율적이므로 다시 돌아가서 for 루프의 데이터 유형을 변경할 필요가 없습니까?유연성을위한 C++ 자동 키워드

+3

확실히 예 : https://herbsutter.com/2013/08/12/gotw-94-solution-aaa-style-almost-always-auto/ – CinCout

+1

허브가 그렇습니다. 동의합니다. 범위 기반 for 또는 lambdas). 나는 '항상'부분에 대해 충분히 확신하지는 못했다. 특히 유형이 분명하지 않은 경우 명시 적으로 지정하면 코드를 더 쉽게 읽을 수 있으며 중복도 오류를 포착 할 수 있음을 잊지 마십시오. – MikeMB

답변

1

간단히 말해서, 그렇습니다. 자세한 내용은 AAA을 참조하십시오. 그러나 이런 경우에주의하십시오

int x = 4; 
int& ref = x; 
auto y = ref; 

y 지금하지 int&

const int x = 5; 
auto y = x; 

yint하지 const int입니다 int이다;

+0

이러한 사례가 바람직하지 않은 결과를 창출하는 방법에 대한 예를 제공 할 수 있습니까? –

+0

나는 자동차가 그 & amp; const로 정확히 타입을 얻을 것이라고 생각할지도 모른다는 것을 강조하고 싶었다. 그렇지 않습니다. 따라서 첫 번째 예제에서는 참조를 복사하는 것이 아니라 전체 복사본을 만듭니다. –

+0

@HumamHelfawi 글쎄, 정확히 예상 할 수있는 행동이다. 마치'auto &'라고 ​​쓸 수있는 것처럼 보인다. – CoffeeandCode