Они здесь только для вашего удобства, поэтому вы можете использовать их в своем коде.В C ++ нет модели отражения, так что это единственный способ узнать, что это за типы. Предположим, вы определяете свою собственную пару
typedef pair MyPair;
Тогда вы можете использовать
MyPair :: first_type
MyPair :: second_type
, например,
MyPair::first_type my_first(MyPair& pair)
{
return pair.first;
}
Тогда вы выиграли 'Если вы измените исходное определение MyPair, вам нужно будет искать и заменять его везде.