小编s-v*_*s-v的帖子

使用可变参数模板的随机选择器功能 - 是否可能?

我想使用C++ 11的可变参数模板来实现通用的"随机选择器"功能.

像这样......

template <typename T>
T randomPicker(T one, T two, T three)
{
    int pick = 3 * (rand() / double(RAND_MAX));
    switch (pick)
    {
        case 0:
            return one;
        case 1:
            return two;
        default:
            return three;
    }
}
Run Code Online (Sandbox Code Playgroud)

...除了通用以接受任何数量的参数(每个参数类型相同,如上所述 - 尽管接受任何类型作为参数并且在返回时将所选类型转换为某个特定类型T也是可接受的).

我理解使用模板递归来实现类型安全printf等的想法.可变参数模板也可以用来创建上面描述的那种函数吗?任何提示赞赏!

c++ variadic-functions variadic-templates c++11

11
推荐指数
2
解决办法
604
查看次数