변수의 경우 선언되는 변수의 유형이 이니셜 라이저에서 자동으로 추론되도록 지정합니다. 함수의 경우 반환 형식이 후행 반환 형식이거나 반환 문에서 추론되도록 지정합니다 (C++ 14 이후).
구문
auto variable initializer (1) (since C++11)
auto function -> return type (2) (since C++11)
auto function (3) (since C++14)
decltype(auto) variable initializer (4) (since C++14)
decltype(auto) function (5) (since C++14)
auto :: (6) (concepts TS)
cv(optional) auto ref(optional) parameter (7) (since C++14)
설명 등 루프 용의 초기화 제표 공간 범위의 블록 범위에서 변수를 선언하면
1), 키워드 자동 사용될 수있다 형식 지정자로 사용됩니다. 이니셜 라이저 유형이 결정되면 컴파일러는 함수 호출에서 템플릿 인수 공제 규칙을 사용하여 키워드 auto를 대체 할 유형을 결정합니다. 자세한 내용은 템플릿 인수 공제 # 기타 컨텍스트를 참조하십시오. 키워드 auto에는 유형 공제에 참여하는 수정 자 (예 : const 또는 &)가 수반 될 수 있습니다. 예를 들어 const auto& i = expr;
으로 주어진 경우, i의 유형은 f(expr)
함수 호출이 컴파일 된 경우 가상 템플릿 template<class U> void f(const U& u)
에있는 인수 u의 유형과 정확하게 일치합니다. 따라서 자동 & &은 범위 기반 루프에 사용되는 이니셜 라이저에 따라 왼쪽 값 참조 또는 오른쪽 값 참조로 추론 할 수 있습니다. auto를 사용하여 여러 변수를 선언하는 경우 연역 유형이 일치해야합니다. 예를 들어, auto i = 0, d = 0.0;
선언은 부적절한 반면, auto i = 0, *p = &i;
선언은 올바른 형식이며 auto는 int로 추론됩니다.
2) 후행 반환 형식 구문을 사용하는 함수 선언에서 키워드 auto는 자동 형식 검색을 수행하지 않습니다. 구문의 일부로 만 사용됩니다.
3) 후행 반환 형식 구문을 사용하지 않는 함수 선언에서 키워드 auto는 반환 값 형식이 템플릿 인수 공제 규칙을 사용하여 return 문의 피연산자에서 추론된다는 것을 나타냅니다.
4) 변수의 선언 된 유형이 decltype (자동) 인 경우 키워드 auto는 해당 이니셜 라이저의 표현식 (또는 표현식 목록)으로 대체되고 실제 유형은 decltype에 대한 규칙을 사용하여 추론됩니다.
5) 함수의 반환 형식이 decltype (auto)으로 선언 된 경우 auto 키워드는 return 문의 피연산자로 대체되고 실제 반환 형식은 decltype에 대한 규칙을 사용하여 추론됩니다.
6) auto :: 형식의 중첩 이름 지정자는 제한 유형 자리 표시 자 공제 규칙에 따라 클래스 또는 열거 유형으로 대체되는 자리 표시 자입니다.
7) 람다 식의 매개 변수 선언. (since C++ 14) 함수 매개 변수 선언. (개념 TS)
참고 auto가 저장 기간 지정자의 의미를가집니다. auto f() -> int, i = 0;
에서와 같이 자동 변수와 함수를 하나의 선언에 함께 사용할 수 없습니다.
자세한 내용은 http://en.cppreference.com/w/cpp/language/auto
입니다. 마법. 그것은 새롭다 (_oh noes, 나쁜 pun_). 이제 비동기가 미래입니다 (_gasp_) – sehe
다음은 자동 키워드 http : //en.cppreference에 대한 참조입니다.co.kr/w/cpp/language/auto – andyqee