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 回答