2
我可以決定編譯器可以生成哪些類型的模板類?類模板:限制模板參數
說我希望下一個類只能夠容納實數(float,double)而不是整數類型。
//can I force T to be only real number types?
template<typename T>
class RealNumber
{
public:
T num;
RealNumber() : num() {}
void add(T x) { num += x; }
T get() const { return num; }
};
所以這應該產生一個編譯錯誤:
RealNumber<int> myrealnumber;
SFINAE與is_integral。 – 2015-03-02 17:02:44
@LuchianGrigore:SFINAE是用於控制重載分辨率的函數模板。這需要'static_assert'和'is_floating_point'。 – 2015-03-02 17:03:55