Web page hosting, cheap domain name & website promotion services
  

 Index

Next: , Previous: C++ Attributes, Up: C++ Extensions



6.9 Strong Using

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++.

A using-directive with __attribute ((strong)) is stronger than a normal using-directive in two ways:

  • Templates from the used namespace can be specialized as though they were members of the using namespace.
  • The using namespace is considered an associated namespace of all templates in the used namespace for purposes of argument-dependent name lookup.

This is useful for composing a namespace transparently from implementation namespaces. For example:

     namespace std {
       namespace debug {
         template <class T> struct A { };
       }
       using namespace debug __attribute ((__strong__));
       template <> struct A<int> { };   // ok to specialize
     
       template <class T> void f (A<T>);
     }
     
     int main()
     {
       f (std::A<float>());             // lookup finds std::f
       f (std::A<int>());
     }
 

 

  

 

Buy domain name or register domain | Buy cheap domain from 895cheap-domain.com 

Disclaimers: This document is provided as free service for the benefits of Active-Venture.com's virtual hosting customers only.

 

 

" Computers are useless. They can only give you answers.   "