title: Does std::make_shared() use custom allocators?
body: <p>Consider <a href="http://ideone.com/8wO6Hc">this code</a>:</p>
  
  <pre><code>#include &lt;memory&gt;
  #include &lt;iostream&gt;
  
  
  class SomeClass {
  public:
      SomeClass() {
          std::cout &lt;&lt; "SomeClass()" &lt;&lt; std::endl;
      }
  
      ~SomeClass() {
          std::cout &lt;&lt; "~SomeClass()" &lt;&lt; std::endl;
      }
  
      void* operator new(std::size_t size) {
          std::cout &lt;&lt; "Custom new" &lt;&lt; std::endl;
          return ::operator new(size);
      }
  
      void operator delete(void* ptr, std::size_t size) {
          std::cout &lt;&lt; "Custom delete" &lt;&lt; std::endl;
          ::operator delete(ptr);
      }
  };
  
  
  
  int main() {
      std::shared_ptr&lt;SomeClass&gt; ptr1(new SomeClass);
      std::cout &lt;&lt; std::endl &lt;&lt; "Another one..." &lt;&lt; std::endl &lt;&lt; std::endl;
      std::shared_ptr&lt;SomeClass&gt; ptr2(std::make_shared&lt;SomeClass&gt;());
      std::cout &lt;&lt; std::endl &lt;&lt; "Done!" &lt;&lt; std::endl &lt;&lt; std::endl;
  }
  </code></pre>
  
  <p>Here is its output:</p>
  
  <pre><code>Custom new
  SomeClass()
  
  Another one...
  
  SomeClass()
  
  Done!
  
  ~SomeClass()
  ~SomeClass()
  Custom delete
  </code></pre>
  
  <p>Clearly, <code>std::make_shared()</code> didn't call the <code>new</code> operator -- it's using a custom allocator. Is this the standard behavior for <code>std::make_shared()</code>?</p>