所以,我下面的代碼的某個地方本網頁上設置的例子: http://eli.thegreenplace.net/2014/sfinae-and-enable_if/SFINAE:性病:: enable_if作爲函數參數
這是我有:
template<typename T>
void fun(const typename std::enable_if_t<std::is_integral<T>::value, T>& val) {
std::cout << "fun<int>";
}
template<typename T>
void fun(const typename std::enable_if_t<std::is_floating_point<T>::value, T>& val) {
std::cout << "fun<float>";
}
int main()
{
fun(4);
fun(4.4);
}
這樣我將不得不寫:
fun<int>(4);
fun<double>(4.4);
我會如何避免這種情況?
編譯器抱怨說它不能推導出參數T
。
我明白了。如何在沒有返回類型的構造函數中工作? – DeiDei
@DeiDei查看更新 –
使用'int'作爲'std :: enable_if'的第二個參數有什麼意義?它是任意的嗎?還是因爲'int = 0'是安全的? – Jacob