C ++ hakkındaki en büyük şikayetlerimden biri, pratikte std kütüphanesi nesnelerinin dinamik kütüphanenin (yani dll / so) sınırlarının dışına aktarılmasının ne kadar zor olduğu.
Std kütüphanesi genellikle sadece başlıktır. Bazı harika optimizasyonlar yapmak için harika. Bununla birlikte, dll'ler için, genellikle bir std kütüphane konteynırlarının iç yapısını / kodunu etkileyebilecek farklı derleyici ayarlarıyla oluşturulurlar. Örneğin, MSVC'de bir dll, bir başkası onunla birlikte derlenirken yineleyicinin hata ayıklamasıyla oluşturulabilir. Bu iki eşya, etrafta std kaplarını geçen sorunlara rastlayabilir. std::stringArayüzümde ifşa edersem, müşterinin kullandığı kodun std::stringkütüphanemle tam olarak eşleştiğini garanti edemem std::string.
Bu, sorunları, baş ağrıları, vb. Hata ayıklamayı zorlaştırır. Bu sorunları önlemek için kuruluşunuzdaki derleyici ayarlarını sıkı bir şekilde denetlersiniz veya bu sorunlara sahip olmayacak daha basit bir C arayüzü kullanırsınız. Veya müşterilerinize, kullanmaları gereken beklenen derleyici ayarlarını belirtin (başka bir kitaplığın diğer derleyici ayarlarını belirlemesi durumunda berbat).
Sorum şu ki, C ++ 11 bu sorunları çözmek için bir şeyler yapmaya çalıştı mı?
DLLS arasında zor . S arasında SOher zaman iyi çalıştı.