crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V  < 1 2 3 >  
Ответить в данную темуНачать новую тему
> Способ конвертации имени элемента перечисления в строку
kuler
  опции профиля:
сообщение 16.1.2009, 16:50
Сообщение #11


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

Спасибо сказали: 6 раз(а)




Репутация:   -1  


Цитата(ViGOur @ 16.1.2009, 16:33) *
Просто компиляторами тут пока даже и не пахнет.

а что же это тогда? это ни в коем разе не библиотека, ибо в коде нет данных о названиях переменных, методов и тд.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrew Selivanov
  опции профиля:
сообщение 16.1.2009, 16:55
Сообщение #12


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

Спасибо сказали: 15 раз(а)




Репутация:   6  


Можно еще вот так (подсмотрено на http://stackoverflow.com/questions/201593/...-enum-to-string)

содержимое файлика colours.def
X(Red, "red")
X(Green, "green")


ну и сам код)
enum Colours {
#define X(a, b) a,
#include "colours.def"
#undef X
    ColoursCount
};

char const* const colours_str[] = {
#define X(a, b) #b,
#include "colours.def"
#undef X
    0
};

int main()
{
    std::cout << colours_str[Green] << "\n";
    return 0;
}


Ну и про макросы обобщим:
# - в строку
#@ - в char
## - слепить
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 16.1.2009, 17:02
Сообщение #13


Мастер
******

Группа: Модератор
Сообщений: 3293
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(kuler @ 16.1.2009, 16:50) *
а что же это тогда? это ни в коем разе не библиотека, ибо в коде нет данных о названиях переменных, методов и тд.
я понимаю, в технике программирования необязательно обсуждение библиотек, но и языков тоже.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.1.2009, 17:28
Сообщение #14


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


ViGOur, я думаю это все таки к компиляторной теме ближе.

название темы немного перефразировал
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 16.1.2009, 17:29
Сообщение #15


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

Спасибо сказали: 6 раз(а)




Репутация:   -1  


ViGOur,
все просек, # рулит.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 16.1.2009, 17:29
Сообщение #16


Мастер
******

Группа: Модератор
Сообщений: 3293
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(Litkevich Yuriy @ 16.1.2009, 17:27) *
ViGOur, я думаю это все таки к компиляторной теме ближе.
Хорошо, соглашусь с вами, 2 против одного. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 16.1.2009, 17:55
Сообщение #17


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

Спасибо сказали: 6 раз(а)




Репутация:   -1  


стоп!
а так не работает:
EnThreadState state;

state = tsNone;
string str = THREADSTATE(state); //  str = "state" а хотелось бы "tsNone"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
void*
  опции профиля:
сообщение 16.1.2009, 18:18
Сообщение #18


Программист-самоучка
***

Группа: Участник
Сообщений: 429
Регистрация: 4.6.2008
Пользователь №: 193

Спасибо сказали: 28 раз(а)




Репутация:   3  


kuler, все правильно, так и должно работать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 16.1.2009, 18:21
Сообщение #19


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

Спасибо сказали: 6 раз(а)




Репутация:   -1  


Цитата(void* @ 16.1.2009, 18:18) *
все правильно, так и должно работать

да но тогда нужен другой способ
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 16.1.2009, 18:21
Сообщение #20


Мастер
******

Группа: Модератор
Сообщений: 3293
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(kuler @ 16.1.2009, 17:55) *
str = "state" а хотелось бы "tsNone"
С этого и нужно было начианать! :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V  < 1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 4.12.2020, 5:44