小编Mik*_*ger的帖子

使用可变数量的浮点参数

我正在尝试为我的struct Polynomial实现一个灵活的构造函数:

struct Polynomial
{
    std::vector<float> coefficients;
    size_t degree;
};
Run Code Online (Sandbox Code Playgroud)

多项式的程度是可变的.我想要的是拥有像这样的构造函数

Polynomial(float... _coefficients);
Run Code Online (Sandbox Code Playgroud)

我尝试过variadic模板:

template<float... Args>
Polynomial(Args... args);
Run Code Online (Sandbox Code Playgroud)

但浮动是非类型的,所以我做了:

template<typename... Args>
Polynomial(Args... args);
Run Code Online (Sandbox Code Playgroud)

但这允许我的系数是任何东西,而不是我想要的.我知道我可以使用:

Polynomial(size_t _degree, ...);
Run Code Online (Sandbox Code Playgroud)

但它真的不安全.

目前我正在使用:

Polynomial(std::vector<float>);
Run Code Online (Sandbox Code Playgroud)

但这迫使调用如下:

Polynomial P({f1, f2, f3}); // with fn floats
Run Code Online (Sandbox Code Playgroud)

所以我想知道是否有一个很好的方法来做到这一点.

谢谢 !

c++ templates variadic-templates c++11

12
推荐指数
2
解决办法
805
查看次数

标签 统计

c++ ×1

c++11 ×1

templates ×1

variadic-templates ×1