|
Development Development |
|
Опции темы | Поиск в этой теме | Опции просмотра |
29.08.2012, 01:41 | #1 |
MaNGOS Dev
Регистрация: 17.11.2011
Сообщений: 99
Сказал(а) спасибо: 35
Поблагодарили 80 раз(а) в 26 сообщениях
|
return-by-reference for Object field access
Can somebody explain why we use return-by-reference to access object-fields?
Код:
const int32& GetInt32Value(uint16 index) const { MANGOS_ASSERT(index < m_valuesCount || PrintIndexError(index , false)); return m_int32Values[ index ]; } const uint32& GetUInt32Value(uint16 index) const { MANGOS_ASSERT(index < m_valuesCount || PrintIndexError(index , false)); return m_uint32Values[ index ]; } const uint64& GetUInt64Value(uint16 index) const { MANGOS_ASSERT(index + 1 < m_valuesCount || PrintIndexError(index , false)); return *((uint64*) & (m_uint32Values[ index ])); } const float& GetFloatValue(uint16 index) const { MANGOS_ASSERT(index < m_valuesCount || PrintIndexError(index , false)); return m_floatValues[ index ]; } uint8 GetByteValue(uint16 index, uint8 offset) const { MANGOS_ASSERT(index < m_valuesCount || PrintIndexError(index , false)); MANGOS_ASSERT(offset < 4); return *(((uint8*)&m_uint32Values[ index ]) + offset); } uint16 GetUInt16Value(uint16 index, uint8 offset) const { MANGOS_ASSERT(index < m_valuesCount || PrintIndexError(index , false)); MANGOS_ASSERT(offset < 2); return *(((uint16*)&m_uint32Values[ index ]) + offset); } ObjectGuid const& GetGuidValue(uint16 index) const { return *reinterpret_cast<ObjectGuid const*>(&GetUInt64Value(index)); } (Historical note: we do this since long forgotten times) |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ошибка компиляции (undefined reference to `__sync_add_and_fetch_4') | maximt | Установка MaNGOS | 6 | 16.01.2011 21:13 |
[10065] Some return values fixes. | newsbot | CMaNGOS Commits | 0 | 15.06.2010 19:20 |
Added missing return statement. | newsbot | CMaNGOS Commits | 0 | 15.06.2010 16:10 |
[9575] Use ObjectGuid in Map object stores/world access/search. | newsbot | CMaNGOS Commits | 0 | 12.03.2010 13:40 |