3

私は現在、次のクラスのコンストラクターを持っています:

template<class TX, class TY> MyClass(const TX &x, const TY &y)

2つの値に基づいてクラスを作成できるようにします。

C++2011のランダムジェネレーター/エンジンを使用してクラスを構築できるようにしたいと思います。

template<class TG, class TE> MyClass(TG &generator, TE &engine)

この最後のコンストラクターを変更する方法。その形式では、コンパイラーの最初のコンストラクターと同じものだからです。SFINAEは使えると思いますが、使い方がわかりません。

どうもありがとうございます !

4

1 に答える 1

3

TX引数とTY引数は、最初のコンストラクターで何を表しますか?SFINAEを使用するには、メンバー変数や関数など、TXおよびTYとは確実に異なるジェネレーターおよびエンジンのAPIのいくつかの側面を見つける必要があります。このseed関数は良い候補かもしれません。既知の署名を持つメンバー関数をチェックするための一般的な手法は、別の回答に記載されています。関数の存在をチェックするためのテンプレートを作成することは可能ですか?

于 2012-05-29T01:10:57.917 に答える