inlineキーワードで修飾された名前空間(C++)。
その中で宣言された名前は、親名前空間の名前としても参照できる。
ライブラリのバージョンを名前空間で分けつつ、既定の版を親名前空間から参照できるようにする用途でよく使われる。
namespace Parent {
inline namespace V1 {
void func(); // 宣言
}
}
// 親空間の名前(Parent::)を使って、V1の中の関数を定義できる!
void Parent::func() {
// 処理内容
}
int main() {
Parent::func(); // 呼び出しも無修飾(V1なし)でOK
}