私はオーバーロードされたメソッドを持っています:
template<typename AnyType>
void AnyFunc(AnyType &t);
template<typename AnyType>
void AnyFunc(AnyType &&t);
ポインターを保持する呼び出し元があり、関数のいずれかを使用したい:
MyType* ptr=new MyType();
AnyFunc(*ptr);
最後の行でコンパイル エラーが発生します: AnyFunc のあいまいなオーバーロード
必要な機能を選択するにはどうすればよいですか? 簡単なケースでは、次を使用します。
AnyFunc(std::move(*ptr));
を選択しますがvoid AnyFunc(AnyType &&t);
、これは私が望むものではありません。void AnyFunc(AnyType &t);
その方法が必要
です。