- 클라이언트에게 어떤 것을 해야하는 책임을 지우는 인터페이스는 잘못 사용되기 쉽다. 클라이언트는 책임을 종종 잊어버리기 때문이다.
- cross-DLL problem
어떤 오브젝트가 한 DLL에서 생성된 후 다른 DLL에서 삭제되는 경우 런타임 오류를 일으키는 현상.  std::shared_ptr 은 deletor를 지정할 수 있는데, 이를 통해 cross-DLL problem을 피할 수 있다.
Summary
- Good interfaces are easy to use correctly and hard to use incorrectoly. You should strive for these characteristics in all your interfaces.
- Ways to facilitate correct use include consistency in interfaces and behavioral compatibility with built-in type.
- Ways to prevent errors include creating new types, restricting operations on types, constraining object values, and eliminating client resource management responsibilities.
-  tr1::shared_ptr  supports custom deleters. This prevents the cross DLL problem, can be used to automatically unlock mutexes (item 14), etc.
Reference
- Effective C++ by Scott Meyers