Effective Modern C++

Deducing Types Item 1: Understand template type deduction 예를 들어 함수 템플릿 선언이 다음과 같다고 하자. template<typename T> void f(const T& param); // ParamType is const T& 그리고 이를 다음과 같이 호출한다. int x = 0; f(x); // call f with an int 이 경우 T는 int로 추론되나 ParamType은 const int&로 추론된다. T에 대해 추론된 타입은 expr 타입 뿐만 아니라 ParamType의 타입에도 의존한다. 타입에 따라 총 3가지 경우로 나뉜다. ParamType이 포인터 또는 참조 형식이지만 보편 참조(universal reference)는 아닌 겨웅 ParamType이 보편 참조인 경우 ParamType이 포인터도 아니고 참조도 아닌 경우 경우 1: ParamType이 포인터 또는 참조 타입이지만 보편 참조는 아님 이 경우 타입 추론은 다음과 같이 진행된다....

December 24, 2024 · 69 min · Beomsu Lee

Effective C++

Accustoming Yourself to C++ Item 1: View C++ as a federation of languages C++은 다중 프로그래밍 언어(multiparadigm programming language)이다. C++은 절차적 언어인 C를 기본으로 한다. 객체 지향 개념의 C++ (클래스, 캡슐화, 상속, 다형성, 가상함수 등) 템플릿 C++ (TMP) STL 위 4가지 언어들이 C++을 이루고(federation) 있다. 효과적인 프로그래밍 규칙은 경우에 따라 달라지며, 이는 C++의 어떤 부분을 사용하느냐이다. Item 2: Prefer consts, enums, and inlines to #defines 매크로를 사용하면 컴파일러에 심볼릭 이름(symbolic name)이 보이지 않아 에러가 발생할 경우 확인이 어렵다....

December 12, 2024 · 48 min · Beomsu Lee