最終更新日時(UTC):
が更新

履歴 編集

入れ子名前空間定義でのインライン名前空間 [P1094R2](C++20)

このページはC++20に採用された言語機能の変更を解説しています。

のちのC++規格でさらに変更される場合があるため関連項目を参照してください。

概要

C++17で、入れ子の名前空間をnamespace ns1::ns2::ns3 {}のように簡易的に定義できるようになったが、インライン名前空間の指定はできなかった。

C++20では、namespace ns1::inline ns2::ns3 {}のように、入れ子名前空間を一度に定義する場合でも一部の名前空間をインラインの指定をできるようにする。

以下の定義は、

namespace ns1::inline ns2::ns3 {
  class X;
}

以下と等価である:

namespace ns1 {
inline namespace ns2 {
namespace ns3 {
  class X;
}}}

関連項目

参照