我(最后)最近听说可变参数模板。我想知道,如果有一种方法可以让一个INT - 多项式编译时间运营商:编译时间polynoms
template <int... coefs>
struct polynom {}
哪些coud支持加,一元减号和MUL操作符。
[编辑]:claryfying问题:
甲INT-多项式是基本上一个整数列表(系数):
1 + 2x^2 - 7x^5 <=> (1, 0, 2, 0, 0, -7)
我想这个多项式由一个编译时间常数来表示:
polynom<1,0,2,0,0,-7>
让我们先考虑加法(在其中我们逐个添加元素)。
是否有可能总得有一个运营商+这样的:
polynom<1,0,1> + polynom<-1,2,1,3> -> polynom<0, 2, 2, 3>
?
对于乘法,它将是一个类似的(但更复杂的问题)。
有人在这里有任何经验吗?
模板是一种编译时机制。如果你想要一个在编译时评估的多项式,你可以避开你提出的问题。无法将运行时值用作模板参数。你最好只是把你的polynom作为单个模板参数的最大程度并将这些项存储在一个'std :: array'中。 –
“polynom <1,2>”与“polynom <2,1>”有什么不同? – HolyBlackCat
@FrançoisAndrieux:如果我的系数是编译时间常量? –