A
Alexander Stippler
Hi,
Why is there no matching operator== in the following code?
#include <iostream>
template <class T>
class A
{
public:
template <class S>
class B;
};
template <class T>
template <class S>
class A<T>::B
{
};
template <class T, class A1, class A2>
bool
operator==(const typename A<T>::template B<A1> &lhs,
const typename A<T>::template B<A2> &rhs)
{
return true;
}
int
main()
{
A<int>::B<int> ab1;
A<int>::B<double> ab2;
std::cerr << (ab1 == ab2) << std::endl;
return 0;
}
regards,
alex
Why is there no matching operator== in the following code?
#include <iostream>
template <class T>
class A
{
public:
template <class S>
class B;
};
template <class T>
template <class S>
class A<T>::B
{
};
template <class T, class A1, class A2>
bool
operator==(const typename A<T>::template B<A1> &lhs,
const typename A<T>::template B<A2> &rhs)
{
return true;
}
int
main()
{
A<int>::B<int> ab1;
A<int>::B<double> ab2;
std::cerr << (ab1 == ab2) << std::endl;
return 0;
}
regards,
alex