Qaupot Blog
Software Engineering, Trip

111. auto / Cpp11

🕐 Wed, 19 Feb 2014 09:00:00 GMT 🕓 Wed, 25 Aug 2021 14:31:00 GMT

Auto (C++11)

auto 는 기존의 자료형 자리에 위치하며 자료형을 타입 추론으로 대체할 수 있습니다.

  • C++11 부터 사용할 수 있습니다.
  • template argument deduction rules 이 적용됩니다.
#include <iostream>
int main(int argc, char** argv)
{
    auto intNum = 4;
    auto floatNum = 4.2;
}

auto keyword 가 가장 많이 사용되는 경우는 위와 같이 변수선언을 할 때입니다.

auto 를 사용할 때는 변수 선언과 동시에 반드시 초기화가 이루어질 필요가 있으며, 초기화 시 주어지는 값을 통해 타입을 추론하여 가장 적합한 자료형이 지정됩니다.

이 키워드는 코드의 양을 줄여주고, 가독성을 높여 줄 수 있습니다.

아래 코드는 추후 기술할 STL 을 사용한 코드입니다. iterA 변수의 선언식과 iterB 의 선언식을 비교해보면, 코드가 줄어들었음을 확인할 수 있습니다.

#include <vector>
int main(int argc, char** argv)
{
    std::vector vector;

    std::vector::iterator iterA = vector.begin();
    auto iterB = vector.begin();
}
#include <vector>
int main(int argc, char** argv)
{
    std::vector vector;

    std::vector::iterator* iterA = (std::vector::iterator*) &vector.begin();
    auto iterB = (std::vector::iterator*) &vector.begin();
}
이 블로그는 개인 블로그입니다. 게시글은 오류를 포함하고 있을 수 있지만, 저자는 오류를 해결하기 위해 노력하고 있습니다.
게시글에 별도의 고지가 없는 경우, 크리에이티브 커먼즈 저작자표시-비영리-변경금지 4.0 라이선스를 따릅니다.

This blog is personal blog. published posts may contain some errors, but author doing efforts to clear errors.
If post have not notice of license, it under creative commons Attribution-NonCommercial-NoDerivatives 4.0.