C++11 shared_ptr test would never compile because struct A only has a default constructor