No, I absolutely do understand, that X<T> in the operators library defines operators which take T as an argument. I hope, that my explanation meant that (my english is bad, I know). But I think, that the standard does forbid the visibiliy of the operators injected by less_than_comparable<myclass> for myclass because myclass is not the associated with less_than_comparable<**>. Now the operators injected by less_than_comparable<myclass> take myclass as arguments (those with arguments, I mean) and should noot be visible for myclass.
They needn't be visible for myclass. They only need to be visible in the namespace where this happened. See 3.4.2/2:
"If T is a class type, its associated classes are the class itself and its direct and indirect base classes. Its associated namespaces are the namespaces in which its associated classes are defined."
The namespace is what is important here, not the class. The friend-operators declared by X<T> are injected to the namespace as given by 14.6.2/2:
"As with non-template classes, the names of namespace-scope friend functions of a class template special-ization are not visible during an ordinary lookup unless explicitly declared at namespace scope (11.4). Such names may be found under the rules for associated classes (3.4.2)."
note the "...namespace-scope friend functions...", which to me means that the operators are not injected to X<T>, but to the namespace where the explicit instantiation happened. As this should be the same namespace where T lives, anything should IMHO be legal C++. At least this is how I read the standard.
Regards, Daniel
PS: I don't think english is our problem, but if you feel more comfortable with german you can mail me directly if you like.
-- Daniel Frey
aixigo AG - financial training, research and technology Schloß-Rahe-Straße 15, 52072 Aachen, Germany fon: +49 (0)241 936737-42, fax: +49 (0)241 936737-99 eMail: [EMAIL PROTECTED], web: http://www.aixigo.de
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost