1
#include "stdafx.h"
#include <iostream>
using namespace std;
// move operation is not implicitly generated for a class where the user has explicitly declared a destructor
class A {
public:
friend inline void operator << (ostream &os, A& a) {
os << "done" << endl;
}
};
template <typename T>
void done(T a) {
cout << a;
}
template<typename T>
void g(T h) {
cout << h << endl;
}
int main()
{
A a;
done(a);
// g(a); // with error: "mismatch in formal parameter list" and '<<': unable to resolve function overload.
return 0;
}
「ENDL」とテンプレート関数のエラーをコンパイルし、ENDL 'で、コードがエラーで をコンパイルできないほど奇妙です':関数のオーバーロードを解決できません。VS2015はコメントとして
'using namespace std;'を使用せず、明示的に 'std ::'の前に接頭辞を付けます。 –