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'

Reply via email to