diff options
-rw-r--r-- | libstdc++-v3/ChangeLog | 3 | ||||
-rw-r--r-- | libstdc++-v3/docs/html/faq/index.html | 28 |
2 files changed, 31 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b18948e..5efdd97 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,6 @@ +2002-11-28 Jonathan Wakely <redi@gcc.gnu.org> + * docs/html/faq/index.html: Add tip about a namespace for extensions. + 2002-11-28 Paolo Carlini <pcarlini@unitus.it> Nathan Myers <ncm@cantrip.org> diff --git a/libstdc++-v3/docs/html/faq/index.html b/libstdc++-v3/docs/html/faq/index.html index f7a9b0a..f472bfc 100644 --- a/libstdc++-v3/docs/html/faq/index.html +++ b/libstdc++-v3/docs/html/faq/index.html @@ -877,6 +877,34 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff that of other headers whose directories are not searched directly, e.g., <code><sys/stat.h></code>, <code><X11/Xlib.h></code>. </p> + + <p>The extensions are no longer in the global or <code>std</code> + namespaces, instead they are declared in the <code>__gnu_cxx</code> + namespace. For maximum portability, consider defining a namespace + alias to use to talk about extensions, e.g.: + </p> + <pre> + #ifdef __GNUC__ + #if __GNUC__ < 3 + #include <hash_map.h> + namespace Sgi { using ::hash_map; }; // inherit globals + #else + #include <ext/hash_map> + #if __GNUC_MINOR__ == 0 + namespace Sgi = std; // GCC 3.0 + #else + namespace Sgi = ::__gnu_cxx; // GCC 3.1 and later + #endif + #endif + #else // ... there are other compilers, right? + namespace Sgi = std; + #endif + + Sgi::hash_map<int,int> my_map; </pre> + <p>This is a bit cleaner than defining typedefs for all the + instantiations you might need. + </p> + <p>Extensions to the library have <a href="../ext/howto.html">their own page</a>. </p> |