私が作成しているクラスがあり、そのコンストラクターの 1 つに特別な型を使用します。このクラスは、要件に合った任意の型にすることができます。このテンプレート化されたコンストラクターが原因で、コピー コンストラクターとムーブ コンストラクターが不正なオーバーロードになるという問題に遭遇しました。
私のクラスは次のようにレイアウトされています:
template<typename ... Types>
class myclass{
public:
myclass(const myclass &other){/* copy constructor */}
myclass(myclass &&other){/* move constructor */}
template<typename Special>
myclass(Special &&arg){/* stops copy/move implementations */}
}
この制限を回避するにはどうすればよいですか?