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

V_D>Йоу. Есть следующее определение шаблонного класса:


V_D>При таком определении класс можно специализировать только четырьмя параметрами, каждый из которых должен быть классом, в котором определено имя Type. Число параметров 4 взято для примера. При реальном использовании шаблонных параметров может быть до 16.


V_D>Теперь о том, что хочется. Хочется, чтобы те члены _attributeN, для которых соответствующий шаблонный параметр AttributeN является void, убирались из определения класса. Иными словами, хочется, чтобы при специализации вида Entity< ConcreteAttribute1 >, код компилировался, и в классе был единственный член _attribute1; чтобы при специализации вида Entity< ConcreteAttribute1, ConcreteAttribute2 > в классе были только члены _attribute1 и _attribute2 и т.д. Возможно ли это осуществить каким-либо образом?


к варианту Bell можно добавить вариант со специализацией, если нет идеологических предубеждений против макросов.
пример здесь
Автор: night beast
Дата: 11.08.10


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


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