On Thu, Jan 7, 2010 at 4:02 PM, Darin Fisher <da...@chromium.org> wrote:
> On Thu, Jan 7, 2010 at 3:45 PM, Aaron Boodman <a...@google.com> wrote: > >> On Thu, Jan 7, 2010 at 1:28 PM, Peter Kasting <pkast...@google.com> >> wrote: >> > If you have ever used any of the EmptyXXX() functions, or ever will, >> please >> > read on. >> > These functions (in string_util.h and gurl.h) are meant for a single, >> > specific use case: >> > const std::string& MyClass::foo() const { >> > return (everything == OK) ? member_string : EmptyString(); >> > } >> > Here you cannot return "string()", because it's destroyed before the >> > function returns, and the caller receives garbage; and you don't want to >> > have the function return by value, because you can access the member >> > variable directly and save a copy. The utility functions give you a >> global >> > empty string that you can safely return a const reference to. >> > DON'T USE THESE OUTSIDE THIS CASE. You should never use these as >> > initializers, arguments to functions, or return values in functions that >> > return by value. Just use the default constructor; that's what it's >> there >> > for. >> >> Out of curiosity, what is wrong with using EmptyString() in those >> cases? Is there a correctness problem? Unnecessary inclusion of >> string_util.h? >> >> > probably just a tad more costly since it involves Singleton<T>. but, i > think peter's main reason was simply to stick to the simpler and more > familiar std::string. > > -darin > Where as It looks like GURL::EmptyGURL() may be a tad less costly than GURL(). > > > > >> - a >> >> -- >> Chromium Developers mailing list: chromium-dev@googlegroups.com >> View archives, change email options, or unsubscribe: >> http://groups.google.com/group/chromium-dev >> > > > -- > Chromium Developers mailing list: chromium-dev@googlegroups.com > View archives, change email options, or unsubscribe: > http://groups.google.com/group/chromium-dev >
-- Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev