title: Same address, multiple shared_ptr counters, is it forbidden by C++ standard?
body: <p>Suppose I have the need to do the following (This is just some imaginative code for discussion of the C++ standard, thus I won't discuss why I design it this way, so don't bother me with something like: your design is wrong.)</p>
  
  <pre><code>T* ptr = new T;
  shared_ptr&lt;T&gt; p(ptr);
  shared_ptr&lt;T&gt; q(ptr, SomeDeleterThatDoesnotDeleteButDoSomeOtherStuff());
  </code></pre>
  
  <p>Suppose the logic guarantees that <code>p</code> or some of its copies lives longer than all copies of <code>q</code>, so practically there won't be any problem.  My question is, is it forbidden by C++ standard, e.g. explicitly stated as UB by C++ standard, for different shared_ptr counters to share the same address?</p>
  
  <p>Thanks.</p>