On Wed, Sep 07, 2011 at 11:06:04AM -0400, Richard Heck wrote: > >- std::string const & extension() const { return extension_; } > >+ std::string const & extension() const { return extension_list_[0]; } > > > >and extension_list_[0] would be an invalid address otherwise. > > > return extension_list_.empty() ? "" : extension_list_[0]?
That would return a dangling reference in this particular case. So either std::string extension() const { return extension_list_.empty() ? "" : extension_list_[0]; } or the moral equivalent of std::string const & extension() const { static std::string dummy; return extension_list_.empty() ? dummy : extension_list_[0]; } Andre'