Объявление enum в Eclipse - PullRequest
       22

Объявление enum в Eclipse

2 голосов
/ 21 ноября 2010

Я компилирую проект c ++ в Eclipse, Linux.

В прошлом проект был скомпилирован в Windows.

У меня есть объявление перечислений, подобное этому:

enum nameofenum:UINT32
{
  one=0,
  two=1
}

Результатом является ошибка в затмении.

  1. Что означает :UINT32?
  2. Как я могу переключить эту декларацию на Linux?

Спасибо !!

Ответы [ 4 ]

4 голосов
/ 21 ноября 2010

Это похоже на строго типизированное перечисление , которое является функцией C ++ 0x.По сути, он определяет базовый тип перечисления, поэтому one и two будут UINT32 s.

. Для компиляции необходим компилятор, который поддерживает эту конкретную часть C ++.0x язык.Я считаю, GCC 4.4 и Visual C ++ в некоторой степени поддерживает строго типизированные перечисления.

2 голосов
/ 21 ноября 2010

: UINT32 объявляет базовый тип перечисления;это означает, что перечисление будет представлено UINT32.

. Это новая функция C ++, добавляемая в C ++ 0x, которая называется строго типизированным перечислением.Visual C ++ поддерживает его, по крайней мере, начиная с Visual C ++ 2005;используемая вами версия g ++ может не поддерживать ее.

Что касается того, как вы работаете с g ++, это зависит от ситуации.Если у вас нет кода, который опирается на определенный базовый тип, вы можете просто удалить его.Если у вас есть код, который опирается на определенный базовый тип, вы можете рассмотреть возможность замены использования типа перечисления базовым типом (т. Е. Использовать UINT32 вместо nameofenum);это не очень хорошо, хотя.

0 голосов
/ 21 ноября 2010

: UINT означает, что базовым типом идентификаторов перечисления является UINT.Это расширение Microsoft, описанное здесь .Для компиляции удалите : UINT.

0 голосов
/ 21 ноября 2010
  1. UINT32 - 32-разрядное целое число без знака, поэтому ваше перечисление представлено 4-байтовым целым числом.
  2. Это зависит.Я не знаю точно, но вам действительно нужно использовать это перечисление как 32-битное int?Может быть, вы просто можете избежать этого: объявление UINT32?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...