これらの署名が両方ともあると、コンパイルエラーが発生します。
String& operator+(String&& a, const TCHAR* b)
String operator+(String a, const TCHAR* b)
string.cpp(97): error C2593: 'operator +' is ambiguous
string.cpp(34): could be 'String &operator +(String &&,const TCHAR *)'
string.cpp(24): or 'String operator +(String,const TCHAR *)'
彼らは違いませんか????? 両方使えばパフォーマンスが上がる気がします。一方、+演算子は常に右辺値を処理するため、これはあいまいですか?
vc++2010コンパイラ