Если это только в вашем классе, я обычно помещаю его в верхнюю часть частного раздела:
class Foo
{
public:
void some_functions(void);
private:
typedef std::pair<std::string, std::string> StringPair;
typedef std::map<StringPair, std::string> StringPairMap;
StringPairMap _stringMap;
}
Чтобы уточнить, как и для большинства вещей, вы хотите указать эти вещи как можно более локальными. Переменные должны делать это: вы не определяете int i
для вашего цикла for, пока не достигнете цикла и т. Д.
Аналогично, если ваш класс использует эти typedef для внутреннего использования, делайте то, что я сказал выше. Если для определения типа нужна только определенная функция в вашем классе, поместите определение типа в начало этой функции.
Если вам нужно предоставить эту typedef клиентам класса, я бы хотел разместить typedef в верхней части раздела public
.