最終更新日時: 2025年07月10日 10時26分30秒 (JST)
Koichi Murase が更新

履歴 編集

# 入れ子名の指定にグローバルスコープ :: を付加することを許可(C++11)

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

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

## 概要

入れ子名を指定する構文において、先頭にグローバルスコープの指定`::`を付加することが許可された。

    // クラスAの宣言
    struct A;

    // クラスAの定義
    struct ::A {
    };

## 仕様

nested-name-specifierの構文が、以下のように変更された。

変更前：

    nested-name-specifier:
      type-name ::
      namespace-name ::

変更後：

    nested-name-specifier:
      :: opt type-name ::
      :: opt namespace-name ::

## 参照

- CWG Issue 355. Global-scope `::` in nested-name-specifier