Для возврата двух значений я использую std::pair
(обычно typedef'd). Вы должны посмотреть на boost::tuple
(в C ++ 11 и новее, есть std::tuple
) для более чем двух результатов возврата.
С введением структурированного связывания в C ++ 17 возвращение std::tuple
должно, вероятно, стать принятым стандарт.