Skip to content

Latest commit

 

History

History
42 lines (28 loc) · 1.26 KB

nested_inline_mamespaces.md

File metadata and controls

42 lines (28 loc) · 1.26 KB

入れ子名前空間定義でのインライン名前空間 [P1094R2]

  • cpp20[meta cpp]

このページは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;
}}}

参照