Re[3]: Возможно ли убрать член класса в зависимости от парам
От: night beast СССР  
Дата: 04.10.10 11:31
Оценка:
Здравствуйте, Van_Der_Lokken, Вы писали:

V_D>>>P.S.: несмотря на то, что смысл задачи состоит в описании кортежа, заменить её на использование std::tuple по некоторым причинам невозможно.


NB>>по каким? std::tuple легко переписывается своими силами с нужной функциональностью.


V_D>Сам по себе std::tuple не годится, так как никто не гарантирует, что элементы кортежа будут расположены в памяти в том же порядке, в каком были указаны в списке параметров шаблона, и что между ними не окажется padding-байтов. А та структура данных, что мне нужна, должна удовлетворять этим требованиям. Скажем, в моём компиляторе sizeof( std::tuple<uint32_t> ) == 8. Если я всё правильно понимаю, в реализации кортежа 4 байта всегда обязательно уходит на некий "хвостовой" элемент. В моём случае неприемлемо.


никаких хвостовых элементов в тупле нет.
список типов известен на момент компиляции, поэтому в нем нет необходимости.
возможно, в конце наследования есть пустая структура, но нормальные компиляторы умеют делать EmptyBaseOptimisation.
если твой не может, то "std::tuple легко переписывается своими силами". в своем велосипеде крайним делается тупл из одного элемента, и все дела.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.