91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c++ enable_if的使用技巧有哪些

c++
小樊
83
2024-07-12 09:41:28
欄目: 編程語言

  1. 使用enable_if來限制模板函數的特化
template <typename T>
typename std::enable_if<std::is_integral<T>::value, T>::type
foo(T t) {
    return t * 2;
}

template <typename T>
typename std::enable_if<std::is_floating_point<T>::value, T>::type
foo(T t) {
    return t * 3.14;
}
  1. 使用enable_if來限制模板類的特化
template <typename T, typename = std::enable_if_t<std::is_integral<T>::value>>
class MyClass {
    // class implementation
};

template <typename T, typename = std::enable_if_t<std::is_floating_point<T>::value>>
class MyClass {
    // class implementation
};
  1. 使用enable_if來選擇模板函數的返回類型
template <typename T>
std::enable_if_t<std::is_integral<T>::value, T>
foo(T t) {
    return t * 2;
}

template <typename T>
std::enable_if_t<std::is_floating_point<T>::value, T>
foo(T t) {
    return t * 3.14;
}
  1. 使用enable_if來限制模板函數的參數類型
template <typename T, typename U, 
    typename = std::enable_if_t<std::is_integral<T>::value && std::is_integral<U>::value>>
void bar(T t, U u) {
    // function implementation
}

template <typename T, typename U, 
    typename = std::enable_if_t<std::is_floating_point<T>::value && std::is_floating_point<U>::value>>
void bar(T t, U u) {
    // function implementation
}

0
九寨沟县| 陇西县| 旬邑县| 余江县| 蓝山县| 铅山县| 霍林郭勒市| 同心县| 邛崃市| 金溪县| 清水县| 铅山县| 昭平县| 清原| 安福县| 华坪县| 建德市| 全州县| 海晏县| 交城县| 兰考县| 永川市| 水富县| 昂仁县| 武山县| 屏东县| 宕昌县| 西安市| 巴青县| 师宗县| 河南省| 金寨县| 昌吉市| 宜章县| 阿荣旗| 正宁县| 遂昌县| 瓮安县| 全椒县| 托里县| 金湖县|