Я пытаюсь реализовать гибкий конструктор для моей структуры Polynomial:
struct Polynomial
{
std::vector<float> coefficients;
size_t degree;
};
Степень полинома является переменной. Я хотел бы иметь конструктор типа
Polynomial(float... _coefficients);
Я пробовал вариационный шаблон:
template<float... Args>
Polynomial(Args... args);
Но float не является типом, поэтому я сделал:
template<typename... Args>
Polynomial(Args... args);
Но это позволяет моим коэффициентам быть чем угодно, а не тем, что я хочу. Я знаю, что могу использовать:
Polynomial(size_t _degree, ...);
Но это действительно опасно.
В данный момент я использую:
Polynomial(std::vector<float>);
Но это заставляет вызов выглядеть как:
Polynomial P({f1, f2, f3}); // with fn floats
Итак, я хотел бы знать, есть ли хороший способ сделать это.
Спасибо!