I was trying to benchmark my Tuple and std::pair performanceYou will lose, already because you copy the parameters unnecessarily, let alone move semantics or perfect forwarding. Don't reinvent the wheels of the standard library, they have lived through years of research, development and optimization. Even something seemingly simple like std::pair is non-trivial to implement safely and efficiently.