std::parameter_pack refactoring