- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
// say this is some existing structure. And we want to use
// a list. We can tell it that the next pointer
// is apple::next.
struct apple {
int data;
apple * next;
};
// simple example of a minimal intrusive list. Could specify the
// member pointer as template argument too, if we wanted:
// template<typename E, E *E::*next_ptr>
template<typename E>
struct List {
List(E *E::*next_ptr):head(0), next_ptr(next_ptr) { }
void add(E &e) {
// access its next pointer by the member pointer
e.*next_ptr = head;
head = &e;
}
E * head;
E *E::*next_ptr;
};
int main() {
List<apple> lst(&apple::next);
apple a;
lst.add(a);
}
что-то я тут не очень понял. Адрес может быть параметром или что имелось в виду?
>что-то я тут не очень понял. Адрес может быть параметром или что имелось в виду?
имелось в виду что я тормозил - по крайней мере с указателями на члены.
с глобальными поинтерами и указетелями на методы это точно не работает. если покажете как можно с указателями на методы (без доп интерфейса, например `apple *apple::get_next()`) буду оч благодарен.
Вот пример с указателем на функцию:
>o_;
>o_(&o)
это не смайлики - это уточки!
Он высиживает яйца
И куда подевался Тарас??
И вообще где здесь С++???
он считает, дескать, так оно и не надо - чтоб в ногу лишний раз не стрелять.
но как только приспичивает; то тарасик наговнокодит очередной анальный изврат и радуется как малое дитя - смотрите как посрал, ололо!
впоследствии же он лезет в интернеты и кидается этим говном во все стороны считая это троллингом.
я кончил.