Правильное использование typedef в C ++ - PullRequest
13 голосов
/ 28 апреля 2010

У меня есть коллеги, которые иногда используют typedef, чтобы не печатать. Например:

typedef std::list<Foobar> FoobarList;
...
FoobarList GetFoobars();

Лично я всегда ненавижу сталкиваться с подобным кодом, в основном потому, что он заставляет меня искать typedef, чтобы я мог рассказать, как его использовать. Я также чувствую, что подобные вещи - это потенциально скользкий путь ... Если вы делаете это, то почему вы не делаете это больше? (довольно скоро ваш код полностью запутан). Я нашел этот ТАК вопрос относительно этой проблемы:

когда мне следует использовать typedef в C

У меня два вопроса: 1) действительно ли я одинок в том, что мне это не нравится? 2) Если подавляющее большинство людей считает, что использование typedef такого типа в порядке, какие критерии вы используете, чтобы определить, следует ли определять typef для типа?

Ответы [ 12 ]

0 голосов
/ 28 апреля 2010

Я думаю, что typedef - хорошая практика в этом случае. Хотя синтаксис шаблона ставит параметры перед вами, они, как правило, являются теми вещами, которые можно попытаться инкапсулировать в объектно-ориентированной среде.

typedef'ing шаблон выполняет эту инкапсуляцию.

0 голосов
/ 28 апреля 2010

Вы часто видите typedefs, когда вам нужно написать код C ++, который работает на разных платформах, потому что размер основных типов данных не фиксирован. Например, виртуальная машина Java имеет typedef для основных типов для различных компиляторов.

...