
This assignment was to create a series of escalating proxy objects with arithmetic and conversion operator overloads, in order to take advantage of inlining and shortcut longer Vector addition expressions into single-line RVO expressions. This was then compared to a non-proxied version with the same number of elements.
For example, take the expression:
A = B + C + D + E + F;
Where A,B,C,D,E, and F are all Vector objects with an X, Y, Z, and W component.
Normally, this would walk through each Vector addition in sequence, calling four Vector+ operators, and creating five temporary Vector objects.
With conversion overloading and inlining via proxy structs, the compiler jumps straight to the proxy which takes all five Vects, performs all five additions concurrently, and returns a single temporary object.
It should be noted that in Debug mode, the inline proxy version will still call the constructors and inline operators for each subsequent proxy, which reduces the benefits of this structuring.
Test Results:

