Mooing Duck делает комментарий здесь: "Одна функция не может возвращать несколько типов. Однако, вы можете специализироваться или делегировать на перегрузки, что отлично работает".
Я начал об этом думать, и я пытаюсь выяснить, как этот юридический код:
template <typename T>
T initialize(){ return T(13); }
При вызове с помощью:
auto foo = initialize<int>();
auto bar = initialize<float>();
Не переводит ли это 2 функции с одним и тем же именем, перегруженные только с помощью возвращаемого типа?