Return a const vector of const shared pointers to const objects
问题 Given the following class based on containers of shared pointers, class Foo; class Bar { public: // ... const std::vector<boost::shared_ptr<const Foo> >& getFoos() const { return foos_; } private: std::vector<boost::shared_ptr<Foo> > foos_; }; which will not compile because invalid initialization of reference of type ‘const std::vector<boost::shared_ptr<const Foo>, std::allocator<boost::shared_ptr<const Foo> > >&’ from expression of type ‘const std::vector<boost::shared_ptr<Foo>, std: