Kitaplığınızın uygulamasında yalnızca C ++ 11 kullanması ve C ++ 11 tesislerini veya türlerini genel olarak göstermemesi şartıyla ve özellikle statik bağlantı kullanıyorsanız, evet, bu mümkün ve hatta standarttır.
Bir kitaplığın C düzeyinde bir arabirimi (en geniş istemci çeşitliliği tarafından kullanılabilir olması) açığa çıkardığı, ancak C ++ içinde dahili olarak uygulandığı yaygın durumu düşünün. Böyle bir kütüphaneye bağlanan istemciler, yalnızca maksimum uyumluluk için eski C / C ++ olarak sınırlandırdığınız genel ikili API (dışa aktarılan işlevler) konusunda endişelenmelidir. Bir Java programı, dahili olarak C ++ ile uygulanan C düzeyi API'lere bağlanabilir. Bu, Java'nın "C ++ 'ı desteklemesi" gerektiği anlamına gelmez. Benzer şekilde, eski tip bir C / C ++ istemcisi, dahili olarak C ++ kütüphanelerinin veya diğer kütüphanelerin daha avant-garde sürümünü kullanan bir C düzeyi veya C ++ düzeyi API'sine bağlanabilir. İki ayrı şey vardır: kütüphanenin arayüzüne bağlanmak için gerekenler ve kütüphanenin dahili olarak neye bağlandığı (veya statik olarak çektiği).
Kitaplığınızın istemcilerini uygulamanızın bağımlılıklarına maruz bırakmazsınız.
Bağımlılıklarınızı (C ++ 11 veya başka bir şey) statik olarak kitaplığınıza bağlayabiliyorsanız, bu temiz ve bağımsızdır. Kütüphane gerçek bir kara kutudur: bayt kodundan başka bir şey değildir. Ancak kitaplığınız bağımlılıklarınıza "örtülü dinamik" bağlantı aracılığıyla bağlansa bile (LoadLibrary / GetProcAddress türünün açıklığı ve * nix ve OS X'teki benzer yöntemlerle karıştırılmamalıdır), eski istemciler yine de bu kitaplıklara bağlanabilmelidir. Genel arayüz, kütüphaneye bağlı kütüphanelere bağlanamasalar bile .