Movatterモバイル変換


[0]ホーム

URL:


D Logo
Menu
Search

Library Reference

version 2.112.0

overview

Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.Requires a signed-in GitHub account. This works well for small changes.If you'd like to make larger changes you may want to consider usinga local clone.

dmd.nspace

A scoped C++ namespace symbol
D supports the following syntax to declare symbol(s) as being part of a C++ namespace:
extern (C++,"myNamespace") {/+ Symbols +/ }// String variantextern (C++, SomeNamespace) {/+ Other symbols +/ }// Identifier variant
The first form is an attribute and only affects mangling, and is implemented indmd.attrib. The second form introduces a named scope and allows symbols to be refered to with or without the namespace name, much like a named template mixin, and is implemented in this module.
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);}
Hence theNspace symbol implements the usualScopeDsymbol semantics.
Note that it impliesextern(C++) so it cannot be used as a generic named scope. Additionally,Nspace with the sameIdentifier can be defined in different module (as C++ allows a namespace to be spread accross translation units), but symbols in it should be considered part of the same scope. Lastly, not all possible C++ namespace names are valid D identifier.
See Also:
https://github.com/dlang/dmd/pull/10031
Authors:
Walter Bright
License:
Boost License 1.0

Sourcenspace.d

Documentationhttps://dlang.org/phobos/dmd_nspace.html

Coveragehttps://codecov.io/gh/dlang/dmd/src/master/compiler/src/dmd/nspace.d

classNspace:dmd.dsymbol.ScopeDsymbol;
Ditto
ExpressionidentExp;
Namespace identifier resolved during semantic.
Copyright © 1999-2026 by theD Language Foundation | Page generated byDdoc on Fri Feb 20 11:33:44 2026

[8]ページ先頭

©2009-2026 Movatter.jp