3 ms·
Of course, you can do it that way as well. However the problem with promise approach is that it is introducing extra dynamic memory allocations beneath and thes
by menaerus 4y ago
Of course, you can do it that way as well. However the problem with promise approach is that it is introducing extra dynamic memory allocations beneath and these cannot be optimized out or elided. At least, not to my knowledge. With expression templates and operator overloading you're basically avoiding exactly that as much as possible.
- Someone 4y agoWhere do you see dynamic memory allocations being needed in that example? I only see locals that a good compiler can fairly easily optimize away. Also, there’s a simple bijection between expressions with operators and two-argument function calls: a + b * c +(a, *(b,c)) plus(a, times(b,c)) Because of that, I don’t understand why operator overloading should give better optimization opportunities than function calls.
- menaerus 4y agoUnless you're talking about some theoretical promise, C++ promise implementation imposes dynamic allocation.