클래스 자체를 가리 키도록 포인터를 클래스 멤버에 할당하는 방법이 있습니까?"pointer-to-member"를 자기에게 할당하기
이것은 클래스의 인스턴스에 멤버 포인터를 적용한 결과가 바로 그 인스턴스에 대한 참조가된다는 것을 의미합니다.
예 :
struct SFoo {};
constexpr SFoo SFoo::* MP_foo = &SFoo:: MYSELF;
// Is there some syntax I can use here? --^
나는 이것이 내가 임의의 템플릿 유형의 요소의 컨테이너에 작동하는 정렬 알고리즘을 가지고 있습니다 원하는 이유. 정렬 키는 제공된 요소 대 포인터를 사용하여 각 요소에서 가져옵니다.
그러나 이제는 요소가 이고 또한 인 컨테이너를 정렬하려고합니다. 따라서, 멤버 포인터가 자신을 가리 키도록해야합니다 (클래스가 자체 멤버 인 것처럼).
가 나는 (내가 지금 하나를 사용하고 있습니다)를 사용할 수 있습니다 쉽게 (제로 비용) 해킹의 수는 있지만, 나는 그것이 바로을 완수하는 데 사용할 수있는 몇 가지 구문 트릭이 있는지 알고 싶어요 way - 여분의 부끄러운 코드를 피하십시오.
이것은 의미가 없습니다. 클래스 멤버에 대한 포인터는 클래스 멤버에 대한 포인터입니다. 그것이 클래스 멤버에 대한 포인터가되고, 클래스 자체의 인스턴스처럼 다른 것에 대한 포인터가 아닙니다. 클래스 멤버에 대한 포인터라는 것을 언급 했습니까? –
당신은 생성자의 주소를 취할 수 없습니다 – Danh
이것은 [XYproblem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)이며 나는 당신이 Y , 즉 왜 (일부 정렬, 예, 정확히 정렬하는지) 필요하며 "쉽고 (비용이 들지 않는) 해킹"이 필요하다는 것을 보여줍니다. 그들에게 어떤 문제가 있습니까?쉽고 비용이 들지 않으면 왜 사용하지 않으시겠습니까? – user463035818