Я ищу хороший ресурс для изучения хорошего дизайна API для библиотек C ++, просмотра общих объектов / библиотек и т. Д. Есть много ресурсов по написанию хороших API, хороших классов, шаблонов и так далее на уровне исходного кода, но почти ничего о собирать вещи в общие библиотеки и исполняемые файлы. Такие книги, как Large-Scale C ++ Software Design от Джона Лакоса, интересны, но сильно устарели.
То, что я ищу, это совет, то есть по обработке шаблонов. С шаблонами в моем API я часто получаю библиотечный код в своем исполняемом файле (или другой библиотеке), поэтому, если я исправлю там ошибку, я не смогу просто развернуть новую библиотеку, но придется перекомпилировать и перераспределить всех клиентов этого кода. (и да, я знаю некоторые решения, такие как попытка создания экземпляров хотя бы самых распространенных версий в библиотеке и т. д.)
Я также ищу другие предостережения и вещи для сохранения двоичной совместимости при работе с библиотеками C ++.
Есть ли хороший сайт или книга о таких вещах?
std::unique_ptr
это довольно новый материал. Что именно, по вашему мнению, больше подходит для предложенного вами API? Например, каким образом вам пришлось вручную управлять всеми ресурсами, фактически гарантируя утечки и двойное удаление? Или то, как многие из ваших типов имели одно-или двухбуквенные имена, делая невозможным гадание их цели?
unique_ptr
было бы невозможно написать такой код.