You mean, the code I posted to show Elysia the kinds of compiler errors I wanted him to examine/eliminate had errors? (Edit: To clarify, I had no idea why the original source Elysia posted was getting those errors. I assumed that the inline definition inside a class trumped the issue CornedBee explained. To that end, I was trying to broil the problem down to something I could solve.)
I was talking about your definition of test2 (which I was assuming was your "correct" code):
Code:
struct test2
{
template<typename TN, typename UN>
friend bool operator == <> (const test2<TN> & lhs, const test2<UN>& rhs);
private: int i;
};