Daniel Spangenberg wrote:
(CRTP). Provided, that this is true, I assume, that the proposed
workaround for
compilers with expensive multiple inheritance implementations should not
work on
compliant compilers, because of a violation of 14.6.5/p. 2:

"As with nontemplate classes, the names of namespace scope friend
functions of a class template specialization 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)."

In a first statement, Daveed Vandevoorde also seems to assume, that the
interpretation is
correct, that "[..]X<T> is not in general associated with T [..]" (My
truncated quote from
Daveeds answer).

Concretly said, the example:

class myclass{
   //
};

template struct less_than_comparable<myclass>;

should not work, because less_than_comparable<myclass> is not associated

I guess you missed the fact that X<T> in the operators library defines operators which take T as an argument, not X<T>. Whether X<T> is associated with T is therefore not important here, ADL matches the operator arguments, not the class which declared the operator.


Regards, Daniel

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

Reply via email to