1
爲什麼我在下面得到鏈接器錯誤?模板好友功能實例化
template<typename T, typename U>
class A {
public:
class B;
};
template<typename T, typename U>
class A<T, U>::B {
friend bool operator==(const B& b1, const B& b2);
};
template<typename T, typename U>
bool operator==(const typename A<T, U>::B& b1, const typename A<T, U>::B& b2) {
return true;
}
int main() {
A<char, int>::B b1;
A<char, int>::B b2;
if (b1 == b2) {
return 0;
} else {
return 1;
}
}
我得到的錯誤是:
Undefined symbols for architecture x86_64:
"operator==(A<char, int>::B const&, A<char, int>::B const&)", referenced from:
_main in test-qSCyyF.o
那麼...我該如何解決它。 = P – fumoboy007
我認爲這將是obvius :)我會更新。 – jrok
所以我不能有一個模板化的朋友函數,它是在類之外定義的? – fumoboy007