Есть ли способ назначить элемент-указатель для класса, чтобы он указывал на сам класс?присвоение «указателю на член» для себя
Это фактически означает, что результат применения указателя-члена к экземпляру класса будет ссылкой на тот же самый экземпляр.
например:
struct SFoo {};
constexpr SFoo SFoo::* MP_foo = &SFoo:: MYSELF;
// Is there some syntax I can use here? --^
Причина Я хочу это у меня есть алгоритм сортировки, который работает на контейнер элементов произвольного типа шаблона. Ключ сортировки получается из каждого элемента, используя поставляемый указатель на элемент.
Однако, теперь я хочу сортировать контейнер, в котором находится элемент также ключ. Таким образом, мне нужно сделать точку-указатель на себя (как будто класс был его собственным членом).
Есть несколько простых (и нулевую стоимость) писак я могу использовать (и я использую его сейчас), но я хочу знать, если есть какой-то синтаксический трюк я могу использовать, чтобы сделать это право путь - чтобы избежать лишнего неэлегантного кода.
Это не имеет никакого смысла. Указатель на член класса является указателем на член класса. Это то, что делает его указателем на член класса, а не указателем на что-то еще, как экземпляр самого класса. Я упоминал, что это указатель на члена класса? –
Вы не можете принять адрес конструктора – Danh
Это [XYproblem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem), и я думаю, вам лучше объяснить Y , то есть зачем вам это нужно (какая-то сортировка, да, но какая именно сортировка) и показать, что «легкие (и нулевые затраты) хаки» вы упоминаете. В чем проблема с ними?Почему вы не хотите использовать их, если они легкие и нулевые? – user463035818