Объявление перечисления Typedef в C ++ - PullRequest
2 голосов
/ 02 марта 2012

Мой вопрос прост. Законно ли в C ++ откладывать определение типа в объявлении, как показано ниже? GCC принимает код без проблем, но не рекомендуется ли это? Я спрашиваю об этом, потому что я каждый раз находил примеры с typedef в начале инструкции.

enum _mytype {   
 A=1,   
 B=2 
} typedef mytype;

Ответы [ 2 ]

4 голосов
/ 02 марта 2012

typedef X Y;

и

X typedef Y;

- это всего лишь два способа написать одно и то же на C ++. Ни один из них не считается устаревшим, просто первый используется гораздо чаще, возможно, потому что вы можете прочитать его как «typedef X as Y».

0 голосов
/ 02 марта 2012

В C вы часто используете

typedef enum 
{
} what_ever;

потому что в C "enum what_ever" будет определять тип "enum what_ever", а не "what_ever". Однако в C ++ это не так, и, кроме того, по причинам обратной совместимости вы не должны использовать typedef в этой ситуации при написании C ++.

...