中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
甘德县| 汝南县| 横峰县| 丹寨县| 望都县| 乐业县| 张掖市| 武清区| 印江| 塘沽区| 台北县| 鄂温| 华宁县| 巫山县| 河南省| 稷山县| 探索| 新津县| 碌曲县| 桐柏县| 泰来县| 柘城县| 庄浪县| 高雄县| 句容市| 南靖县| 遂平县| 桃源县| 白河县| 腾冲县| 上思县| 年辖:市辖区| 杭锦旗| 台安县| 昌平区| 张北县| 玛纳斯县| 瑞昌市| 柏乡县| 台江县| 聊城市|