2012-05-29 55 views
3

我現在有一類,它是一個構造函數:C++:SFINAE和隨機數發生器/發動機

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,但我不知道如何。

非常感謝!

回答

3

TX和TY參數在第一個構造函數中表示什麼?要使用SFINAE,必須找到與TX和TY可靠區分的生成器和引擎的API的某些方面,例如成員變量或函數。 seed函數可能是一個很好的候選人。用於檢查具有已知簽名的成員函數的一般技術記錄在此處的另一個答案中:Is it possible to write a template to check for a function's existence?