相关疑难解决方法(0)

实现可变参数最小/最大功能

我正在实现可变的最小/最大函数.目标是利用编译时已知的参数数量并执行展开的评估(避免运行时循环).代码的当前状态如下(呈现min - max类似)

#include <iostream>  

using namespace std;

template<typename T>
T vmin(T val1, T val2)
{
    return val1 < val2 ? val1 : val2;
}

template<typename T, typename... Ts>
T vmin(T val1, T val2, Ts&&... vs)
{
    return val1 < val2 ?
        vmin(val1, std::forward<Ts>(vs)...) : 
            vmin(val2, std::forward<Ts>(vs)...);
}

int main()
{
    cout << vmin(3, 2, 1, 2, 5) << endl;    
    cout << vmin(3., 1.2, 1.3, 2., 5.2) << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在这可行,但我有一些问题/问题:

  1. 该 …

c++ templates variadic-templates c++11

27
推荐指数
4
解决办法
5332
查看次数

标签 统计

c++ ×1

c++11 ×1

templates ×1

variadic-templates ×1