Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> enum, operator ++ 
V
    Опции темы
Alca
Дата 22.3.2011, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 7
Всего: 50



http://liveworkspace.org/code/99eba3cde4a5...77f6ebed6bb3dd9

Код

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main ()
{
    enum ETest {
       tOne   = 1,
       tTwo   = 2,
       tThree = 3   
    };

    ETest tTest = tOne;
   
    tTest   ++;    //error: no 'operator++(int)' declared for postfix '++'

    cout << tTest << endl;
    
    return 0;
}

Как с этим бороться?


--------------------
PM WWW ICQ Skype Jabber   Вверх
alexvs11
Дата 22.3.2011, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 6
Всего: 10



Код

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main ()
{
    enum ETest {
       tOne   = 1,
       tTwo   = 2,
       tThree = 3   
    };

    ETest tTest = tOne;
   
    unsigned uns = tTest;
    tTest = static_cast<ETest>(++uns);
    
    cout << tTest << endl;
    
    return 0;
}

PM MAIL   Вверх
Alca
Дата 22.3.2011, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 7
Всего: 50



http://liveworkspace.org/code/81b1158b4116...d7242b7d306b9c8
Код

////tTest ++;
tTest = static_cast<ETest>( static_cast<int>(tTest) + 1 );

 smile 

Это сообщение отредактировал(а) Alca - 22.3.2011, 14:33


--------------------
PM WWW ICQ Skype Jabber   Вверх
boostcoder
Дата 22.3.2011, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Alca, а возможна ситуация, в которой, значения enum`ов не последовательны?
PM WWW   Вверх
Alca
Дата 22.3.2011, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 7
Всего: 50



Цитата

Alca, а возможна ситуация, в которой, значения enum`ов не последовательны?

 В моем случае - нет


--------------------
PM WWW ICQ Skype Jabber   Вверх
mes
Дата 22.3.2011, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



http://liveworkspace.org/code/ebb810d95196...ed9de54bd923b0b
но не советую так делать..

Добавлено через 1 минуту и 2 секунды
простые енумы для таких дел не очень..


--------------------
PM MAIL WWW   Вверх
Alca
Дата 22.3.2011, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 7
Всего: 50



Спасибо


--------------------
PM WWW ICQ Skype Jabber   Вверх
boostcoder
Дата 22.3.2011, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



а вот мой вариант. доделать только...: http://liveworkspace.org/code/56eb7e54ffba...98e93809b931a9c

Это сообщение отредактировал(а) boostcoder - 22.3.2011, 16:33
PM WWW   Вверх
Alca
Дата 22.3.2011, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 7
Всего: 50



извращенец


--------------------
PM WWW ICQ Skype Jabber   Вверх
boostcoder
Дата 22.3.2011, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(Alca @  22.3.2011,  16:47 Найти цитируемый пост)
извращенец

в моем варианте предусматривалось итерирование по допустимым значениям.
PM WWW   Вверх
Alca
Дата 22.3.2011, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 7
Всего: 50



Спасибо


--------------------
PM WWW ICQ Skype Jabber   Вверх
mes
Дата 22.3.2011, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата

  typedef boost::mpl::vector_c<int> type;

зачем mpl, если 
Код

  int operator++(int) {

 smile 



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 22.3.2011, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



mes, ну да, с этим затупил smile 
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0639 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.