프로그래밍(programming)/C++
c++11 : auto 키워드
윤's군
2016. 3. 12. 01:11
c++98에서는 auto 키워드는 자동지역변수를 명시적으로 지정하는 역활을 했다.
ex ) auto int x = 10; // 지역변수 x 를 명시적으로 의미
c++11에서는 변수 타입을 컴파일러가 유추하여 자동으로 지정해주는 편리한 키워드로 바뀌었다.
이에따라 c++98에서 자동지역변수의 의미는 사라지게 되었다.
ex)
auto x = 10; // x 는 int 형
auto y = 3.3; // y 는 float 형
auto c = "hahaha" // c는 char*형
float add(float a, float b)
{
return a + b;
}
auto z = add(3.3, 4.4); // z는 float
컴파일러는 함수 add의 반환 타입에 따라 자동으로 변수 z의 type을 float으로 결정한다.
stl을 사용할 때
for(std::vector<int>::iterPos = v.begin(); iterPos != v.end(); iterPos++)
와 같은 소스코드를
for(auto iterPos = v.begin(); iterPos != v.end(); iterPos++)
와 같이 줄여 쓸 수 있다.
auto &&b = add(3.3, 4.4) // 우측값 참조
auto &c = b; // 좌측값 참조
auto *p = &c; // 포인터
등도 유효하다