Entry tags:
Зодачка
Специально для любителей шОблоноф и прочих C++ наворотов. :) Сразу пердупердяю: задачка с подвохом.
Дано.
В программе есть некоторое количество классов, которые являются элементами односвязных списков с internal storage (проще говоря, это когда указатель на следующий элемент является членом класса).
Классы имеют вид:
Причем, варьируется не только название класса, но и название поля "nextListItem".
Задача.
Написать универсальную функцию вставки в начало списка с применением template, inline и pointer-to-member операторов. На входе должны быть: вставляемый элемент; указатель на первый элемент; название поля, указывающего на следующий элемент и тип класса. Функция может быть глобальной или членом namespace или функцией какого-либо нового класса - важно, чтобы она была одна, но работала для всех тех классов. Функция должна работать примерно так же, как ниже представленный #define:
Посчитать количество строк в полученной функции. Факультативно: перечислить и обосновать преимущества перед приведенным #define.
Дано.
В программе есть некоторое количество классов, которые являются элементами односвязных списков с internal storage (проще говоря, это когда указатель на следующий элемент является членом класса).
Классы имеют вид:
class MyClass... { MyClass *nextListItem;
Причем, варьируется не только название класса, но и название поля "nextListItem".
Задача.
Написать универсальную функцию вставки в начало списка с применением template, inline и pointer-to-member операторов. На входе должны быть: вставляемый элемент; указатель на первый элемент; название поля, указывающего на следующий элемент и тип класса. Функция может быть глобальной или членом namespace или функцией какого-либо нового класса - важно, чтобы она была одна, но работала для всех тех классов. Функция должна работать примерно так же, как ниже представленный #define:
#define INSERT_TO_LIST(firstItemPtr, item, nextItemName) \ (item)->nextItemName= (firstItemPtr), (firstItemPtr)= (item)
Посчитать количество строк в полученной функции. Факультативно: перечислить и обосновать преимущества перед приведенным #define.
no subject
no subject
мне вот интересна, как из этой позы выкрутицца можно
ну не виноват я, шо со смалтолки всерьез программировать начинал, ага. так вышло
no subject
(в ужасе мацая подбородок)
Re: (в ужасе мацая подбородок)
Re: (в ужасе мацая подбородок)
сам, всё сам
начал, правда, на асме. ну не было тогда приличных доступных компов и удобных компилеров. как дотянулся - так и пришлось однажды игруху разбирать с логикой на СТ - быстренько нашел вкуснятины ага
Re: (в ужасе мацая подбородок)
O_O
игру с логикой на лиспе я знаю. но на смолтолке?!
Re: (в ужасе мацая подбородок)
один хер - лишь пинок к поиску языка дала.
Re: (в ужасе мацая подбородок)
кстате, знаю игрушку с логикой на форте. pygmy forth там. %-)
Re: (в ужасе мацая подбородок)
я ш сдохну oldgames сканить и скачивать все эрпэгэшки тех времен
помню т сугубо визуально. по унутренностям.
Re: (в ужасе мацая подбородок)
алсо, олдгамез говно, абандония рулед!
Re: (в ужасе мацая подбородок)
а ведь были времена, когда игрушки приезжали на дискетках прям к рабочему месту...
Re: (в ужасе мацая подбородок)
(сделал df, понаблюдал забитый терабайт, грустно вздохнул)
вдогон
Re: (в ужасе мацая подбородок)