Re[4]: указатель на под-член
От: rg45 СССР  
Дата: 13.12.09 08:36
Оценка:
Здравствуйте, rg45, Вы писали:

R>Для начала определим обобщенную функцию, которая по двум указателям — на член и на подчлен — возвращает их "суперпозицию", так сказать:

R>
R>template<typename T, typename O1, typename O2>
R>T O1::* superposition(O2 O1::* mem, T O2::* sub);
R>


С помощью этой штуки можно "нырять" на любую глубину:
struct V { int value; };
struct W { V v; };
struct X { W w; };
struct Y { X x; };
struct Z { Y y; };

int Z::* imem = superposition(superposition(superposition(superposition(&Z::y, &Y::x), &X::w), &W::v), &V::value);
--
Справедливость выше закона. А человечность выше справедливости.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.