> On Sep 18, 2017, at 7:34 PM, Kirk Lund <kl...@apache.org> wrote: > > I would vote +1 for a more attractive, professional and user-friendly API. > I'm not sure if there's a perf or memory-usage reason for using > "std::shared_ptr<?>" to types instead of returning values, but the end > result does not look like a professional API to me.
There really isn’t, especially if you look at what we did dirty CacheFactory::getCache by returning a value that can be moved into the heap and a shared point of one wants but not being forced into it. RVO tricks can event make that move a noop. auto r = cache.getRegion(...); Where decltype(r) == Region and auto rp = std::make_shared<Region>(cache->getRegion()); Where decltype(rp) == shared_ptr<Region> Would both be valid.