class A {
public:
template<typename T>
friend ostream& operator<<(ostream &obj, T *a);
fun() {
//cout<<"hello"; // code is doing well without this line
}
};
template<typename T>
ostream& operator<<(ostream &obj,T *a){
}
main() {
A *obj;
ofstream fout;
fout<<obj;
}
Журналы ошибок после раскомментирования строки
In member function 'int A::fun()':
[Error] ambiguous overload for 'operator<<' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'const char [7]')
[Note] std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(long int) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream<char>] <near match>
Я хочу перегрузить operator<<
этой функцией. Что я могу сделать?