이 책의 Item
들은 규칙이 아니며, 가장 중요시해야 할 것은 그 guideline이 만들어진 논리적 rationale를 이해하는 것이 중요하다.
- C++의 공식 버전
- C++98, 03, 11, 14이며, 11부터가 modern cpp라고 볼 수 있음
- C++11
- move semantics가 처음 도입
- rvalue인지 lvalue인지 쉽게 파악하려면, 그 주소를 취할 수 있는지와 없는지 여부를 보면 됨. (있을 시 lvalue, 없을 시 rvalue)
- 함수 파라미터로 올 때, 주로 rvalue의 복사본(항상 copy를 의미하는 것이 아님)은 move되며 lvalue의 복사본은 copy됨.
- 잘 설계된 함수는 exception safety를 보장하며, strong guarantee는 exception이 발생해도 program state가 변하지 않음을 보장하는 보장이다
- 함수 객체는 operator()멤버를 가지는 객체를 뜻한다
- lambda를 통해 만들어진 객체를 closure라고 부른다
- 어떤 기능들은 더 최신 기능들에 의해 deprecate되곤 하는데, 그 예시가
std::auto_ptr
이고,std::unique_ptr
이 일을 더 잘 해낸다