Re: Указатель, как уникальный идентификатор
От: Roman Odaisky Украина  
Дата: 21.05.06 19:13
Оценка: +1
Здравствуйте, ssi, Вы писали:

ssi>
_members_map[ptrdiff_t(&a) - ptrdiff_t(this)] = "a";

Я так понимаю, подразумевалось ptrdiff_t(&a — this)? В любом случае UB это. Хотя большинство компиляторов, по идее, должны такое спокойно проглотить, нельзя на это закладываться. Еще есть offsetof, но и он только для POD.

Только вопрос: для чего это? Можно пример кода, который упрощается с помощью данного подхода? Странный он какой-то. И почему get_member_str возвращает NULL, если ему подсунуть указатель не на член данного объекта?

Наверное, если хорошо постараться, то можно добиться вот такого использования:
std::cout << Foo::template memberStr<&Foo::a>() << std::endl;

Вроде бы так красивее всего.
До последнего не верил в пирамиду Лебедева.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.