私はテンプレートコンバーターを持つコンバーターコンストラクタを持つクラステンプレートを持っています。そのクラステンプレートの2つのパラメータを取る関数です。関数が変換コンストラクタを使用できるようにするには、このquestion/answerを参照しましたが、少なくとも1つの引数が明示的に構築されている場合にのみ関数を呼び出すことができると回答しています。暗黙的にすべての引数を指定して関数を呼び出すことができる他の方法はありますか?すべての関数引数のコンバージョンコンストラクタを持つクラステンプレート
これは、私が上記のリンクを参照した後に持っているものです。少なくとも引数LHSまたはRHSが明示的に型Xのある場合、これは動作し、私はそれが仕事をしたいの両方が型Tである場合でも、
template<typename T>
class X {
public:
X(T t) {}
friend void func(X lhs, X rhs) {}
};
「と私はそれが両方ともタイプTの場合であっても仕事をしたいです」 ... mmmm ...あなたの仲間の一人が 'template:'テンプレートを置くとどうなるでしょうか? 'std :: logic_error(" Not allowed "); } 'あなたのコードに含めるヘッダの1つに? –