make_shared allows the shared pointer to be constructed with its memory and metadata in a contiguous block. This improves cache efficiency and locality and mitigates heap fragmentation. Although make_unique primarily serves to improve readability, make_shared can reduce smart pointer performance overhead dramatically.<p>See <a href="http:&#x2F;&#x2F;stackoverflow.com&#x2F;questions&#x2F;24779929&#x2F;what-happens-when-using-make-shared" rel="nofollow">http:&#x2F;&#x2F;stackoverflow.com&#x2F;questions&#x2F;24779929&#x2F;what-happens-whe...</a><p>You are right in pointing out that the library determines whether using make_shared will improve performance.