Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ auto 키워드란? 타입 추론 기능 완벽 정리

C++ auto 키워드의 역사와 배경

auto는 원래 C 언어에서 C++로 그대로 계승된 키워드로, 오랫동안 언어에 존재해 왔지만 사실상 거의 사용되지 않았습니다. 그러나 C++11에서 문맥(context)으로부터 변수의 타입을 자동으로 추론하는 기능이 도입되면서 상황이 완전히 바뀌었습니다.

C++11 이전에는 모든 데이터 타입을 컴파일 시점에 명시적으로 선언해야 했기 때문에 코드 작성이 번거로웠습니다. 하지만 새 버전의 C++부터는 프로그래머가 타입 추론 작업을 컴파일러에 맡길 수 있는 다양한 키워드들이 추가되었습니다.

타입 추론(Type Inference)의 장점

타입 추론 기능을 활용하면 컴파일러가 이미 알고 있는 타입 정보를 일일이 작성하는 데 드는 시간을 크게 줄일 수 있습니다. 모든 타입은 컴파일 단계에서만 추론되기 때문에 컴파일 시간이 약간 늘어날 수는 있지만, 프로그램의 실행 속도에는 전혀 영향을 미치지 않습니다.

auto 키워드의 동작 방식

auto 키워드는 선언되는 변수의 타입이 초기화자(initializer)로부터 자동으로 추론됨을 지정합니다. 함수의 경우 반환 타입을 auto로 선언하면, return 문의 표현식을 통해 실제 반환 타입이 결정됩니다.

예제 코드

#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> vec(10);  // auto가 int 벡터의 반복자(iterator) 타입으로 추론합니다.
    for (auto it = vec.begin(); it != vec.end(); it++) {
        cin >> *it;
    }
    return 0;
}

위 예제에서 auto it = vec.begin() 부분을 보면, 프로그래머가 일일이 vector<int>::iterator라고 길게 작성하지 않아도 컴파일러가 반복자 타입을 자동으로 추론해 줍니다. 이처럼 auto를 활용하면 복잡한 타입 이름을 반복해서 쓸 필요 없이 코드를 더 간결하고 가독성 좋게 만들 수 있습니다.