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
алсо, не надо — гцц очень достойный компилятор. не без багов (сам наступал, гыгы %-), но кто сейчас без багов, окромя TeX?
no subject
ты немного потерял...
no subject
а писал в итоге всё равно на трупопасцале и асме.
no subject
no subject
no subject
no subject
no subject
ню ню =)
no subject
потому и люблю ваткомку - шо хоть какой контроль существовал. и скорость была весьма на уровне.
no subject
no subject
no subject
(закукливается в iddqd)
свысока смотрит на сквик: хоть п гуйню присобачили шоль вместо доснавигаторской попугаистости!
Re: (закукливается в iddqd)
Re: (закукливается в iddqd)
и если п попугаистость отрывалась без хлопот - я п пользовался. но слишком много телодвижений и слишком далекий уполз от строгости стандартных контролов, для которых мыша не обязательна
Re: (закукливается в iddqd)
Re: (закукливается в iddqd)
Re: (закукливается в iddqd)
Re: (закукливается в iddqd)
no subject
тогда жабу хвалить-хвалить, у нее подобная ж херня :))
no subject
два: я НЕ ПОНИМАЮ, почему при наличии VM с GC в языке нет средств для нормальных лямбд. не понимаю. (ненене, я опять в курсе про scala и про лиспы для jvm %-).
no subject
no subject
в лиспе (настоящем, гыгы %-) вообще ВСЕ функции — лямбды. просто лямбду можно присвоить переменной (потому что функция там — first class citizen).
кстати, в любимом ecma-script это есть. жаль, что почти все, кто говорят, что «знают javascript» — на самом деле нихуя его не знают. он почти лисп, если поглубже выучить. потому риспект и уважуха троллям за QtScript. нириспект и ниуважуха за то, что его использование так прикрыто лицензией, что он становится бессмысленным.
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
А ещё у него прототипная объектная модель, да :-)