Тема: Less Toolkit
Показать сообщение отдельно
Старый 03.05.2009, 13:50   #27 (Ссылка на пост)
Marchello
Местные мы
 
Аватар для Marchello
Пол:
 
Активность Longevity
0/20 17/20
Today Сообщения
0/5 ssssss509
Благодарил(а): 457
Благодарили 620 раз в 179 постах
Галерея: 0
Вес репутации: 23 Marchello известное всем имяMarchello известное всем имяMarchello известное всем имяMarchello известное всем имяMarchello известное всем имя
Цитата:
Сообщение от Lester Посмотреть сообщение
растет пока проект - много переписал, т.к. понял, что ужасно, в частности самый первый пример - массивы
Вот у меня есть пара вопросов (даже не вопросов а мыслей..). Да, массив получился навороченей некуда )) я даже все и не смотрел.
Вот например метод FromArray, ты там юзаешь memcpy для того чтобы заполнить масив в this извне.
Но ведь при таком раскладе не будут вызываться операторы '=' для
кастумных типов. Хотя может тут какой-то скрытый смысл?

И потом, скольо весит пустой такой массив? У меня в 2008 студии пустой вектор весит 20 байт (и 24 в релизе), тогда у тебя выйдет где-то:
(20+20+20) + 6*4 (bool, size_t, ArraySortFunction) + 2*sizeof(T) +
+ размер String (который будет минимум 4*2 байт) = 100 байт для типа int.
А потом еще вызывается reserve(256) в конструкторе...
Короче, такой пустой масив это == int[25]
Хотя память сейчас не критична.

Я вот думаю даже иметь две реализации класса массива - первая ну как обычно, и вторая - для типов не имеющих кастумного оператора присваивания (аля POD). Тогда для простых типов можно будет
повсевместно юзать memcpy - что упростит и ускорит это дело, ну и в таком случае конечно не использовать std::vector, будет такой себе PlainArray - конечно с меньшей функциональностью, но зато шустрый (что важно для gamedev-a).
Marchello вне форума  
Ответить с цитированием