はテンプレート化されたコンストラクタは、削除されたコピーコンストラクタのために立つことができますか?
template<typename T>
struct Foo
{
Foo(const Foo&) = delete;
template <typename Y>
Foo(const Foo<Y>&){}
};
を考えてみましょテンプレートコンストラクタの適切なインスタンス化は、コピーコンストラクタのためで立っていますか?私はそれが(コピーコンストラクタはテンプレート関数であってはならないので)普通ではないことを知っていますが、ここで私はコピーコンストラクタを削除しました。
'Fooの(のconst T&)は'コピーコンストラクタではありません。 'Fooの(定数を持っているが存在しませんFoo&) 'になります。 – aschepler
申し訳ありませんが、私はテンプレート構文があったと思います間違っている。今はいいですか? –
削除された関数は、依然として過負荷解決のために存在します。それを使用しようとするのは単なる誤りです。一方、同じタイプからコピーを作成するのは本当に珍しいことです。 –