Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / [C++] Строки как замена enum (3 стр)

[C++] Строки как замена enum (3 стр)

Страницы: 1 2 3
ardruПостоялецwww9 июня 201810:48#30
Sbtrn. Devil
а зачем его удалять? пусть остаётся. не использовать его - и всё...
ArochПостоялецwww9 июня 201811:06#31
отдельно написать функцию для валидации данных в БД, а в коде вообще не использовать строки написанные вручную.
ZefickПостоялецwww9 июня 201813:37#32
ardru
> А почему просто не хранить енумы в базе данных как числа?
  А я уж думал, что за две страницы до этого никто не догадается. У всех почему-то сразу фиксация на строках, хотя переход на JSON по сути не запрещает по прежнему использовать всё те же числа.

Sbtrn. Devil
> Потому что понадобится удалить какой-нибудь енум из середины - и сразу же будет
> больно и трудно.

enum QWE {
  one = 1,
  two = 2,
  five = 5
}
  И хоть заудаляйся.

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

Правка: 9 июня 2018 13:38

ardruПостоялецwww9 июня 201819:26#33
Zefick
В С++ есть std::map и много всего прочего. Просто овновная фишка С++ - это совместимость с языком С, который создавался в 1968 году с целью поместить компилятор, стандартные библиотеки, компилируемую программу и результат её выполнения на компьютер с 60 килобайтами памяти!

При этом, компилятор включает в себя препроцессор, который заменяет енумы на числа, и основной компилятор уже не знает ни про какие строки. Компилятор выдаёт программу на ассемблере, а уже она переводится в машинный код другим компилятором.

Правка: 9 июня 2018 19:27

VolodarПостоялецwww10 июня 20186:10#34
mr.DIMAS
Используй генерацию кода. Из коробки удобное использование enum как числа и строки
https://gamedev.ru/projects/forum/?id=230255#m1
Страницы: 1 2 3

/ Форум / Программирование игр / Общее

2001—2018 © GameDev.ru — Разработка игр