回答:
ライブラリがその実装でC ++ 11のみを使用し、C ++ 11の機能または型を公開しない場合、特に静的リンケージを使用する場合、そうです、これは可能であり標準です。
ライブラリがCレベルのインターフェイスを公開し(最も幅広い種類のクライアントで使用可能)、C ++で内部的に実装されている一般的なケースを考えます。このようなライブラリにリンクするクライアントは、パブリックバイナリAPI(エクスポートされた関数)のみを心配する必要があります。これは、互換性を最大限にするためにレガシーC / C ++に制限されます。Javaプログラムは、C ++で内部的に実装されているCレベルのAPIにリンクできます。これは、Javaが「C ++をサポートする」必要があるという意味ではありません。同様に、古いスタイルのC / C ++クライアントは、内部的にC ++ライブラリまたは他のライブラリのいくつかの前衛バージョンを使用するCレベルまたはC ++レベルのAPIにリンクできます。2つの別個のこと:ライブラリのインターフェイスにリンクするために必要なもの、およびライブラリ自体が内部的にリンクする(または静的に取り込む)もの。
ライブラリのクライアントを実装の依存関係にさらさないでください。
依存関係(C ++ 11またはその他)をライブラリに静的にリンクできる場合、これはクリーンで自己完結型です。ライブラリは真のブラックボックスです。バイトコードにすぎません。ただし、ライブラリが「暗黙の動的」リンケージを介して依存関係にリンクしている場合でも(明示的なLoadLibrary / GetProcAddressの種類および* nixおよびOS Xの同様のメソッドと混同しないでください)、古いクライアントはそのライブラリにリンクできるはずですライブラリが依存しているライブラリにリンクできなくても、パブリックインターフェイス。
他の人が使用するために新しいライブラリを作成し、実装言語としてC + 11を使用したいように思えます。考慮すべき多くの問題があります。