次のような状況があります。
Class Bar {
...
}
template <class T>
class Foo {
public:
...
Foo(Foo<Bar> bar) {
...
}
...
}
したがって、クラス Foo のコンストラクターの 1 つは、Bar によってパラメーター化されたクラス Foo の要素を取ることができます。これは、Bar によってパラメーター化されたクラス Foo の何かをインスタンス化するまでは問題ありません。このコンストラクターは、私が望むものではないコピー コンストラクターとして解釈されます。コピーコンストラクターに干渉することなく、そのような要素をコンストラクターに持たせるにはどうすればよいか疑問に思っています。たとえば、私はこれを行うことができます:
template <class T>
class Foo {
public:
...
Foo(Foo<Bar> bar, int unused) {
...
}
...
}
コンストラクターがコピー コンストラクターと競合しないため、問題なく動作します。この問題に対処する標準的な方法はありますか?