본문 바로가기

전체 글142

Modern Effective C++ Item 5 : auto는 우월하다 Item 5 auto는 우월하다.auto의 개나소나 알 수 있는 장점일반 타입은 초기화 하지 않은 변수를 허용하므로 분명하게 정의되지 않는 경우가 있다. 반면 auto는 초기화 하지 않고서 사용할 수 없다. int x1; //초기화 되지 않은 상태로 작동 auto x2; //컴파일 에러 auto x3 = 0; //x3이 잘 정의된 상태로 작동타입명이 지나치게 긴 경우 가독성을 해친다. 이 경우 auto를 사용하여 간결하게 표현할 수 있다. C++14의 경우 람다의 매개 변수 타입에 auto를 사용할 수 있다. std::function derefUPLess = [](const std::unique_ptr& p1, const std::unique_ptr& p2) { return *p1 < *p2; }; //.. 2015. 3. 10.
Modern Effective C++ Item 2 : auto 에서의 타입추론 Item 2 : auto 의 타입 추론auto의 타입 추론은 template의 타입 추론의 다른 형태auto 는 내부적(개념적)으로 템플릿 함수를 호출하여 T의 결과를 auto로 추론한다.auto x = 27;위의 오토 선언은 아래의 템플릿함수와 함수 호출로 대체될 수 있다.template void func_for_x(T param); //auto는 T로 변화하고 void(ParamType) 형의 함수가 만들어 진다. func_for_x(27); //이 함수를 호출했을때 템플릿 함수의 타입추론 과정을 그대로 따라가면, //param이 int가 되고 T가 int로 매칭된다. 따라서 auto 는 int임을 추론할 수 있다.Item 1 의 모든 내용은 auto에서 똑같이 적용됨case 1 : 형식 지정자가 포.. 2015. 3. 3.