Szukam dobrego zasobu do nauki o dobrym projektowaniu API dla bibliotek C ++, przeglądaniu współdzielonych obiektów / bibliotek dll itp. Istnieje wiele zasobów na temat pisania fajnych API, ładnych klas, szablonów itp. Na poziomie źródła, ale prawie nic o łączenie rzeczy we wspólnych bibliotekach i plikach wykonywalnych. Książki takie jak Large-Scale C ++ Software Design autorstwa John Lakos są interesujące, ale bardzo przestarzałe.
To, czego szukam, to porady dotyczące obsługi szablonów. Dzięki szablonom w moim interfejsie API często kończę na kodzie biblioteki w pliku wykonywalnym (lub innej bibliotece), więc jeśli naprawię tam błąd, nie mogę po prostu uruchomić nowej biblioteki, ale muszę ponownie skompilować i rozprowadzić wszystkich klientów tego kodu. (i tak, znam niektóre rozwiązania, takie jak próba utworzenia przynajmniej najpopularniejszych wersji w bibliotece itp.)
Szukam również innych zastrzeżeń i rzeczy do zapamiętania dla zachowania zgodności binarnej podczas pracy z bibliotekami C ++.
Czy istnieje dobra strona internetowa lub książka na takie tematy?
std::unique_ptr
to całkiem nowe rzeczy. Co Twoim zdaniem było bardziej odpowiednie w proponowanym interfejsie API? Sposób, w jaki musiałeś ręcznie zarządzać wszystkimi zasobami, na przykład praktycznie gwarantując wycieki i podwójne usuwanie? Lub sposób, w jaki wielu twoich typów miało jedną lub dwie litery, uniemożliwiając określenie ich celu?
unique_ptr
, nie byłoby możliwe napisanie takiego kodu.