C++1x: std::map 초기화하기

C++03 을 쓰던 시절에 가졌던 불만 중 하나는 std::map 처럼 dictionary 타입을 쓸 때 선언 즉시 초기화하기 번잡한 것. 순서가 중요하지 않을 때 성능이 떨어지는 것도 그렇고. 예를 들어, “Jan” -> 1, “Feb” -> 2, …, “Dec” -> 12 와 같은 관계를 표현하고 싶을 때 C++03 에서 std::map 에 간단히 표현할 방법은 없다. 추가적인 초기화함수를 […]

boost::scoped_ptr 를 기억하십니까?

어제 스마트 포인터 관련 글을 썼는데 여기에서 boost::scoped_ptr 는 다루지 않았다. 그건 scoped_ptr 가 반쯤 구현된 unique_ptr 라서. 두 개의 스마트 포인터의 차이는, scoped_ptr 는 지금의 unique_ptr 처럼 오직 1명의 소유자 인 코드를 짤 때 유용하다. unique_ptr 는 move 를 적극적으로 활용해서 만들어진 표준 라이브러리다. (C++11) unique_ptr 는 release() 라는 소유권을 포기하는 멤버 함수를 제공한다. […]