jjzjj

BinaryTimesExpr

全部标签

c++ - 转换表达式模板树

给定一个表达式模板树,我想在处理它之前创建一个新的优化树。考虑以下乘法运算示例:a*b*c*d,由于operator*的从左到右的结合性,它产生了表达式树:(((a*b)*c)*d).我想生成一个转换后的表达式树,其中乘法从右到左发生:(a*(b*(c*d))).考虑二进制表达式类型:templatestructBinaryTimesExpr{BinaryTimesExpr()=default;BinaryTimesExpr(constBinaryTimesExpr&)=default;BinaryTimesExpr(BinaryTimesExpr&&)=default;BinaryT