кортежи похожи на структуры (обсуждается здесь: Boost::Tuples vs Structs для возвращаемых значений а>). похоже, единственное преимущество в том, что структуру удобнее писать, потому что она короче и по ключу, а не по номеру.
можно также использовать карту слияния и структуры для доступа по ключу Boost::Tuples vs Structs для возврата значения для имитации структур. это немного больше письма.
кажется, что штрафа в производительности тоже нет. ну, слияние может быть быстрее, поскольку оно использует представления.
так что единственная причина использовать структуры - это если вы не хотите писать еще несколько строк кода и сохранять код читабельным?