WHAT:
Use auto& instead of auto in operator()(mpl::integral_c...)
WHY:
Otherwise, apparently, the auto is not a ref, and thus causes non-const value and probably an unneeded copy.