나는 C ++ 라이브러리를위한 좋은 API 디자인, 공유 객체 / DLL 등을 배우기위한 좋은 자료를 찾고 있습니다. 좋은 API, 멋진 클래스, 템플릿 등을 소스 수준에서 작성하는 데는 많은 자료가 있지만 거의 아무것도 없습니다. 공유 라이브러리와 실행 파일로 구성 John Lakos의 Large-Scale C ++ Software Design과 같은 책은 흥미롭지 만 엄청난 구식입니다.
내가 찾고있는 것은 템플릿 처리에 대한 조언입니다. 내 API의 템플릿을 사용하면 종종 실행 파일 (또는 다른 라이브러리)의 라이브러리 코드로 끝나기 때문에 버그를 수정하면 새 라이브러리를 롤아웃 할 수는 없지만 해당 코드의 모든 클라이언트를 다시 컴파일하고 재배포해야합니다. (그렇습니다. 라이브러리 내부에서 가장 일반적인 버전을 인스턴스화하려고하는 등의 솔루션을 알고 있습니다.)
또한 C ++ 라이브러리에서 작업하는 동안 바이너리 호환성을 유지하기 위해 고려해야 할 다른 경고 및 사항을 찾고 있습니다.
그런 것들에 관한 좋은 웹 사이트 나 책이 있습니까?
std::unique_ptr
아주 새로운 것입니다. 제안 된 API에 대해 더 적합 하다고 생각한 것은 무엇입니까 ? 예를 들어 누출 및 이중 삭제를 거의 보장하면서 모든 리소스를 수동으로 관리해야하는 방법은 무엇입니까? 또는 많은 유형의 문자가 한두 글자로 된 방식으로 목적을 구분하는 것이 불가능합니까?
unique_ptr
코드를 작성할 수 없습니다.