title: assigning a "pointer-to-member" to self
body: <p>Is there any way to assign a pointer-to-class-member so that it points to the class itself?</p>
  
  <p>This would effectively mean that the result of applying the member pointer to an instance of the class would be a reference to that very same instance.</p>
  
  <p>eg:</p>
  
  <pre><code>struct SFoo {};
  
  constexpr SFoo SFoo::* MP_foo = &amp;SFoo:: MYSELF;
  // Is there some syntax I can use here? --^
  </code></pre>
  
  <p>The reason I want this is I have a sorting algorithm that works on a container of elements of an arbitrary template type. The sorting key is obtained from each element using a supplied pointer-to-member.</p>
  
  <p>However, I now wish to sort a container where the element is <em>also</em> the key. Thus, I need to make the member-pointer point to itself (as if the class were its own member).</p>
  
  <p>There are a number of easy (and zero cost) hacks I can use (and I'm using one now), but I want to know if there's some syntactical trick I can use to get it done the <em>right</em> way - to avoid extra inelegant code.</p>