262 Chapter 7. Extensions to the C++ Languagespecifying a relative priority, a constant integral expression currently bounded between 101and 65535 inclusive. Lower numbers indicate a higher priority.In the following example, A would normally be created before B, but the init_priority at-tribute has reversed that order:Some_Class A __attribute__ ((init_priority (2000)));Some_Class B __attribute__ ((init_priority (543)));Note that the particular values of priority do not matter; only their relative ordering.java_interfaceThis type attribute informs C++ that the class is a Java interface. It may only be applied to classesdeclared within an extern "Java" block. Calls to methods declared in this interface will bedispatched using GCJ’s interface table mechanism, instead of regular virtual table dispatch.See also Section 7.9 Strong Using.7.9. Strong UsingCaution: The semantics of this extension are not fully defined. Users should refrain from using this ex-tension as its semantics may change subtly over time. It is possible that this extension wil be removedin future versions of G++.A using-directive with __attribute ((strong)) is stronger than a normal using-directive in twoways:• Templates from the used namespace can be specialized as though they were members of the usingnamespace.• The using namespace is considered an associated namespace of all templates in the used namespacefor purposes of argument-dependent name lookup.This is useful for composing a namespace transparently from implementation namespaces. For exam-ple:namespace std {namespace debug {template > class T? struct A { };}using namespace debug __attribute ((__strong__));template > @? struct A> int ? { }; // ok to specializetemplate > class T? void f (A> T ? );}int main(){f (std::A > float? ()); // lookup finds std::ff (std::A > int ? ());}