C ++ kütüphaneleri için iyi API tasarımı hakkında bilgi edinmek, paylaşılan nesneleri / dll'leri vb. İncelemek için iyi bir kaynak arıyorum. Güzel API'ler, güzel sınıflar, şablonlar ve benzeri kaynak seviyesinde yazma konusunda birçok kaynak var, ancak neredeyse hiçbir şey yok şeyleri paylaşılan kütüphanelerde ve yürütülebilir dosyalarda bir araya getirmek. John Lakos'un Büyük Ölçekli C ++ Yazılım Tasarımı gibi kitaplar ilginç ama çok eski.
Aradığım şey, şablonları ele alma konusunda tavsiyedir. API'mdaki şablonlarla sık sık çalıştırılabilir dosyamda (veya başka bir kütüphanede) kütüphane koduyla karşılaşıyorum, bu yüzden orada bir hatayı düzeltirsem yeni kütüphaneyi açamam, ancak bu kodun tüm istemcilerini yeniden derlemeli ve yeniden dağıtmalıyım. (ve evet, en azından kütüphane içindeki en yaygın sürümleri somutlaştırmaya çalışmak gibi bazı çözümler biliyorum.)
Ayrıca C ++ kitaplıkları üzerinde çalışırken ikili uyumluluk tutmak için akılda diğer uyarılar ve şeyler arıyorum.
Bu tür şeyler hakkında iyi bir web sitesi veya kitap var mı?
std::unique_ptr
oldukça yeni şeyler. Önerilen API'nız için tam olarak neyin daha uygun olduğunu düşündünüz ? Örneğin, tüm kaynakları manuel olarak nasıl yönetmeniz gerektiği, örneğin sızıntıları ve çift silme işlemlerini neredeyse garanti ettiniz mi? Ya da türlerinizin çoğunun bir ya da iki harf adı olan ve amaçlarını bölmeyi imkansız kılan yöntem?
unique_ptr
kod yazmak mümkün olmazdı.