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

как лучше присваивать уникальный id? (2 стр)

Страницы: 1 2
#15
21:29, 30 июля 2009

Pokimon
> Бери адрес обьекта в памяти за ИД.
А потом еще и ABA problem заимеем.

#16
21:48, 30 июля 2009

RPGman

> А потом еще и ABA problem заимеем.
Пример?

#17
0:08, 31 июля 2009

Делал и с указателями и с id. Удобнее с указателями работать, сейвить удобно и так и едак, а вот сетка - надо бъ id.

#18
0:28, 31 июля 2009

Ghost2
> Пример?
Раз речь изначально шла об ID, а не о прямом доступе к объекту по указателю, то логично предположить, что есть контейнер объектов, и внешняя подсистема, которая ищет/запрашивает объект по его айдишнику.
Если использовать в качестве айдишника указатель, то может случиться, что старый объект будет удален, а новый сконструирован по тому же адресу. Объект по сути другой, а внешняя подсистема будет считать его тем же самым.

#19
1:13, 31 июля 2009

RPGman

Я про ABA в курсе, только это скорее к общей организации софта относится. Проблема может возникнуть в куче мест, и надо быть aware of it - это да.

#20
11:54, 31 июля 2009

Предлагаю __int64. Пока он переполнится, пройдёт очень много времени. Инфа 100%

#21
13:30, 31 июля 2009

alex19921992
> Предлагаю __int64

чтобы сохранить все возможные варианты ID размером 64 бит, необходимо 147 573 952 589 гигабайт. Не говоря уже об объектах, которым эти ID будут присваиваться.

int32 хватит за глаза.

#22
19:04, 31 июля 2009

странно, что никто не сказал про Guid  а ое для таких целей и создавался, а если ID внутрений, то адрес объекта, как раз то что нуна.

#23
5:04, 2 авг 2009

a ex1 и b ex2 у тебя ГЛОБАЛЬНЫЕ? Тогда порядок их инициализации не определен. Более того. Я не уверен за порядок инициализации a::id0, ex1 и ex2. Т.е. например не может ли a::id0 инициализироваться после  ex1, а не до обоих, как ты думаешь?

#24
11:41, 2 авг 2009

__uuidof() ?

Страницы: 1 2
ПрограммированиеФорумОбщее

Тема в архиве.