C++/Effective Modern

    초기화

    auto auto의 장점 : 변수 초기화 누락을 방지하고 장황한 변수 선언을 피하는 것 중괄호 초기화 의도와는 달리 함수를 선언하게 된 경험이 있다면 바로 이 부작용에 당한 것이다. 문제의 근원은 이렇다. 다음은 흔히 인수를 지정해서 생성자를 호출 하는 코드의 예이다. Widget w1(10); // 인수 10으로 Widget의 생성자를 호출 그런데 이와 거의 비슷한 구문을 이용해서 인수 없이 Widget 의 생성자 class Widget { public: Widget(); // 기본 생성자 Widget(std::initializer_list il); // std::initializer // _list 생성자 … // 암묵적 변환 }; // 함수 없음 Widget w1; // 기본 생성자를 호출 Widg..

    [C++] 형식 연역 규칙

    템플릿 형식 연역 규칙 template void f(ParamType param); f(expression); - 컴파일러는 expression변수를 이용하여 두 가지 형식을 연역한다. T에 대한 형식, ParamType에 대한 형식이다. 두 형식이 다를 때가 있다. ParamType이 포인터 또는 참조 형식이지만 보편 참조는 아닐 때 template void f(T& param); int x = 3;//x는 int const int cx = x;//cx는 const int const int& rx = x;//rx는 const int인 x에 대한 참조 f(x);//T는 int, param의 형식은 int&가 된다. f(cx);//T는 const int, param의 형식은 const int& f(rx);..

반응형