diff options
author | Jason Merrill <jason@redhat.com> | 2006-01-12 15:10:47 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2006-01-12 15:10:47 -0500 |
commit | 664a90c055c8f86cccd5556f48c74e94a6b7cc05 (patch) | |
tree | 57f736eaf87402c6f247f68dfae3575e795014ea /gcc/doc | |
parent | edf8dc34ff317170ae61310ef64155723f775fbc (diff) | |
download | gcc-664a90c055c8f86cccd5556f48c74e94a6b7cc05.zip gcc-664a90c055c8f86cccd5556f48c74e94a6b7cc05.tar.gz gcc-664a90c055c8f86cccd5556f48c74e94a6b7cc05.tar.bz2 |
re PR libstdc++/24660 (versioning weak symbols in libstdc++)
PR libstdc++/24660
* pt.c (check_explicit_specialization): Handle namespace
association.
* name-lookup.c (set_decl_namespace): Likewise.
From-SVN: r109647
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/extend.texi | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 0d54654..0c2f39c 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -9864,7 +9864,7 @@ Predefined Macros,cpp,The GNU C Preprocessor}). * Bound member functions:: You can extract a function pointer to the method denoted by a @samp{->*} or @samp{.*} expression. * C++ Attributes:: Variable, function, and type attributes for C++ only. -* Strong Using:: Strong using-directives for namespace composition. +* Namespace Association:: Strong using-directives for namespace association. * Java Exceptions:: Tweaking exception handling to work with Java. * Deprecated Features:: Things will disappear from g++. * Backwards Compatibility:: Compatibilities with earlier definitions of C++. @@ -10402,22 +10402,23 @@ interface table mechanism, instead of regular virtual table dispatch. @end table -See also @xref{Strong Using}. +See also @xref{Namespace Association}. -@node Strong Using -@section Strong Using +@node Namespace Association +@section Namespace Association @strong{Caution:} The semantics of this extension are not fully defined. Users should refrain from using this extension as its semantics may change subtly over time. It is possible that this -extension wil be removed in future versions of G++. +extension will be removed in future versions of G++. A using-directive with @code{__attribute ((strong))} is stronger than a normal using-directive in two ways: @itemize @bullet @item -Templates from the used namespace can be specialized as though they were members of the using namespace. +Templates from the used namespace can be specialized and explicitly +instantiated as though they were members of the using namespace. @item The using namespace is considered an associated namespace of all @@ -10425,6 +10426,9 @@ templates in the used namespace for purposes of argument-dependent name lookup. @end itemize +The used namespace must be nested within the using namespace so that +normal unqualified lookup works properly. + This is useful for composing a namespace transparently from implementation namespaces. For example: |