Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.08.2011, 18:37   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
Восклицание enum class, проблема с заданием значения

Вот отрывок кода
Код:
enum class fStatus
{
	None,
	haveFriend,
	Meets,
	inLove,
	Married
};

//.....

if ( fs == "none" ) mySI.familyStatus = fStatus::None;
Однако, компилятор не даёт так сделать, материт меня как может(Code::Blocks 10.05). В чём дело?
Кстати, так работает
Код:
if ( fs == "none" ) mySI.familyStatus = (fStatus)0;
_-Re@l-_ вне форума Ответить с цитированием
Старый 09.08.2011, 18:44   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
enum fStatus
{
	fsNone,
	fshaveFriend,
	fsMeets,
	fsinLove,
	fsMarried
};

int main()
{
	fStatus t;
	t = fsNone;
}
хм...

а на enum class говорит g++, что
Цитата:
m.cpp:1:1: warning: scoped enums only available with -std=c++0x or -std=gnu++0x
Цитата:
(Code::Blocks 10.05)
напомню что CodeBlock это IDE которая поддерживает не один компилятор.
предполагаю что у вас MinGW/gcc
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.08.2011, 18:47   #3
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

У меня стоит GNU GCC. А с каким будет работать?
_-Re@l-_ вне форума Ответить с цитированием
Старый 09.08.2011, 18:52   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вы под линем?
если нет, то под виндой это пакет MinGW.

компиль то тот же, тут в языке дело, по текущему стандарту(С++0x же еще не принят) константы enum походу глобальные.
потому мой код вполне корректен(меньше шанс пересечения энумов)

кстати мой код(который перед хм...) работает.(под текущим стандартом)
Код:
enum class fStatus
{
	None,
	haveFriend,
	Meets,
	inLove,
	Married
};

int main()
{
	fStatus t;
	t = fStatus::None;
}
а это работает под С++0x
Код:
g++ -std=c++0x m.cpp
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.08.2011, 18:56   #5
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Спасибо, Пепел Феникса.
Это, заметил почему не компилировалось.
Там, в Settings->Compiler and Debugger, есть вкладка Other Options. Чтобы нормально работать с enum class, надо чтобы там была строчка -std=c++0x(вы и сами это знаете), но её не было, хотя вроде добавлял. Я просто открыл файл конфигурации, ручками прописал, всё заработало так, как мне надо.
Всё, темку можно снести.
_-Re@l-_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с заданием по Java Trosema Помощь студентам 2 29.06.2011 14:46
Проблема с UdpClient class (C)stalin(Cpp) Общие вопросы .NET 0 15.07.2010 18:21
Проблема с домашним заданием на С Inna_L Помощь студентам 2 22.06.2010 04:10
Проблема с заданием аргументов функции по умолчанию LMnet Помощь студентам 4 15.01.2010 17:59
Проблема с заданием условий. Помогите пожалуйста. lubov09 Microsoft Office Excel 7 04.11.2009 13:55