我正在尝试为我的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)
所以我想知道是否有一个很好的方法来做到这一点.
谢谢 !