英語版
このページの英語版を見る
dmd.nspace
スコープ付きC++名前空間シンボル
D は、シンボルが C++ 名前空間の一部であることを宣言する次の構文をサポートしている。
C++名前空間の一部であることを宣言する
extern (C++, "myNamespace") { /+ シンボル +/ } // 文字列のバリエーション extern (C++, SomeNamespace) { /+ 他のシンボル +/ } // 識別子のバリアント最初の形式は属性で、マングリングにのみ影響する。 dmd.attrib で実装されている。 2番目の形式は、名前付きスコープを導入し、名前付きテンプレートミックスインのように、名前空間名の有無にかかわらずシンボルを参照できるようにする。 名前付きテンプレートミックスインのように、名前空間名の有無にかかわらずシンボルを参照できる、 で実装されている。
extern (C++, Basket) { struct StrawBerry; void swapFood (Strawberry* f1, Strawberry* f2); } void main () { Basket.StrawBerry fruit1; StrawBerry fruit2; Basket.swapFood(fruit1, fruit2); swapFood(fruit1, fruit2); }したがって、Nspace シンボルは通常のScopeDsymbol セマンティクスを実装している。 このシンボルはextern(C++) を意味するので、一般的な名前付きスコープとしては使えない。 名前付きスコープとして使うことはできない。さらに、同じIdentifier を持つNspace は、異なるモジュールで定義することができる。 同じ を持つ は、異なるモジュールで定義することができる(C++では、名前空間を翻訳単位にまたがって広げることができるため)。 しかし、その中のシンボルは同じスコープの一部とみなさなければならない。 同じスコープの一部と見なされる。最後に、すべてのC++名前空間名 は有効なD識別子ではない。
Authors:
License:
出典 nspace.d
ドキュメンテーション https://dlang.org/phobos/dmd_nspace.html
- class
Nspace
: dmd.dsymbol.ScopeDsymbol; - 同上
- Expression
identExp
; - セマンティック中に解決された名前空間識別子。
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku