Я шукаю хороший ресурс для вивчення хорошого дизайну API для бібліотек C ++, перегляду спільних об'єктів / dll тощо. Є багато ресурсів для написання приємних API, приємних класів, шаблонів тощо на рівні джерела, але майже нічого про об'єднання речей у спільні файли та виконавчі файли. Книги на кшталт крупномасштабного програмного забезпечення C ++ Джона Лакоса цікаві, але масово застаріли.
Я шукаю поради, тобто щодо роботи з шаблонами. За допомогою шаблонів у моєму API я часто стикаюся з кодом бібліотеки у своїй виконуваній (або іншій бібліотеці), тому якщо я виправляю помилку там, я не можу просто розгорнути нову бібліотеку, але доведеться перекомпілювати та перерозподілити всіх клієнтів цього коду. (і так, я знаю деякі рішення, такі як намагання створити принаймні найпоширеніші версії всередині бібліотеки тощо)
Я також шукаю інші застереження та важливі речі для збереження бінарної сумісності під час роботи над C ++ бібліотеками.
Чи є хороший веб-сайт чи книга про такі речі?
std::unique_ptr
це досить нові речі. Що, на вашу думку, було більш підходящим у запропонованому API? Спосіб, яким вам довелося вручну керувати всіма ресурсами, практично гарантуючи, наприклад, протікання та подвійне видалення? Або те, як багато ваших типів мали одну-дві літерні імена, роблячи неможливим розгадати їх призначення?
unique_ptr
, неможливо було б написати такий код.