The solution to GotW #89 is now available:
GotW #89 Solution: Smart Pointers (updated for C ++11/14)
by Herb Sutter
From the article:
So, why use
make_shared(or, if you need a custom allocator,
allocate_shared) whenever you can, which is nearly always? There are two main reasons: simplicity, and efficiency...