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
мне вот интересна, как из этой позы выкрутицца можно
ну не виноват я, шо со смалтолки всерьез программировать начинал, ага. так вышло
no subject
(в ужасе мацая подбородок)
Re: (в ужасе мацая подбородок)
Re: (в ужасе мацая подбородок)
сам, всё сам
начал, правда, на асме. ну не было тогда приличных доступных компов и удобных компилеров. как дотянулся - так и пришлось однажды игруху разбирать с логикой на СТ - быстренько нашел вкуснятины ага
Re: (в ужасе мацая подбородок)
O_O
игру с логикой на лиспе я знаю. но на смолтолке?!
Re: (в ужасе мацая подбородок)
один хер - лишь пинок к поиску языка дала.
Re: (в ужасе мацая подбородок)
кстате, знаю игрушку с логикой на форте. pygmy forth там. %-)
Re: (в ужасе мацая подбородок)
я ш сдохну oldgames сканить и скачивать все эрпэгэшки тех времен
помню т сугубо визуально. по унутренностям.
Re: (в ужасе мацая подбородок)
Re: (в ужасе мацая подбородок)
Re: (в ужасе мацая подбородок)
вдогон
Re: (в ужасе мацая подбородок)
no subject
no subject
лисп и только лисп!
и пусть никто не уйдет...
no subject
no subject
no subject
а лисп на смаллтолке пишецца в пять строк, ага.
(напевая "замыкая круг" уползает гордо распушив хвост)
no subject
no subject
заныкаю!
найти надо, очень старый кусок. позже, и, возможно - у себя вывалю
no subject
no subject
нахуа, пардон май френч?
один фиг, закину на стандалонку. куда-нить сюда кину ссыль как вспомню
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
...без своей скобочки =)
нифига!
no subject