I'm with Matt on this one but if there are serious objections I'll let this die
http://codereview.chromium.org/173234/show On Fri, Aug 21, 2009 at 10:27 AM, Matt Perry <mpcompl...@chromium.org>wrote: > Defining operator<< is fine. Other types do this: > http://www.google.com/codesearch?as_q=operator<<&btnG=Search+Code&hl=en&as_lang=&as_license_restrict=i&as_license=&as_package=src.chromium.org/svn/trunk/src&as_filename=\.h&as_case=<http://www.google.com/codesearch?as_q=operator%3C%3C&btnG=Search+Code&hl=en&as_lang=&as_license_restrict=i&as_license=&as_package=src.chromium.org/svn/trunk/src&as_filename=%5C.h&as_case=> > > string16 is a good example. > > <http://www.google.com/codesearch?as_q=operator%3C%3C&btnG=Search+Code&hl=en&as_lang=&as_license_restrict=i&as_license=&as_package=src.chromium.org/svn/trunk&as_filename=%5C.h&as_case=> > I say just use iosfwd and add the operator. > > On Thu, Aug 20, 2009 at 10:10 PM, Jim Roskind <j...@chromium.org> wrote: > >> Looking at the example you gave....how about: >> EXPECT_EQ(kExpected.InMilliseconds(), foo.InMilliseconds()); >> >> Is that really that painful to write? >> >> ...and you could get all the microseconds to compare if you wanted to via >> ...InMicroseconds(). >> >> I suspect you don't really want absolute comparisons at the microsecond >> level, and more likely you'd want something like; >> >> EXPECT_LT((kEpected - foo).InMilliseconds(), 20). >> >> ...but if you really wanted the example you cited, the first line seems >> relatively short. >> >> Jim >> >> On Thu, Aug 20, 2009 at 7:13 PM, Andrew Scherkus >> <scher...@chromium.org>wrote: >> >>> I know microseconds aren't a very user-friendly format, but for unit >>> tests and DCHECKs I'm more interested in whether the assertion is simply >>> true. >>> >>> Perhaps I'm lazy but I'd prefer: >>> EXPECT_EQ(kExpected, foo); >>> error: Value of: foo >>> Actual: 21000000 >>> Expected: kExpected >>> Which is: 22000000 >>> >>> ...over: >>> EXPECT_TRUE(kExpected == foo) << "Some message about " << >>> kExpected.InSecondsF() << " and " << foo.InSecondsF(); >>> error: Value of: kExpected == foo >>> Actual: false >>> Expected: true >>> Some message about 21.0 and 22.0 >>> >>> Guaranteed I won't write that message every time and then I end up with a >>> simple true/false dump instead of the erroneous values. >>> >>> On Thu, Aug 20, 2009 at 6:49 PM, Matt Perry <mpcompl...@chromium.org>wrote: >>> >>>> Andrew wants to be able to do: >>>> DCHECK_EQ(expected_time_delta, time_delta); >>>> This can't be done without operator<< support. >>>> >>>> >>>> On Thu, Aug 20, 2009 at 6:46 PM, Jim Roskind <j...@chromium.org> wrote: >>>> >>>>> +1 for Peter's suggestion. >>>>> TimeDelta has an internal accuracy of microseconds. What >>>>> resolution/scaling do you want to print in a check? Sometimes it is >>>>> minutes, sometimes seconds, sometimes milliseconds, I doubt that we want >>>>> microseconds :-/. >>>>> >>>>> Explicit conversion as suggested doesn't seem that painful IMO. >>>>> >>>>> Jim >>>>> >>>>> >>>>> On Thu, Aug 20, 2009 at 4:02 PM, Peter Kasting >>>>> <pkast...@chromium.org>wrote: >>>>> >>>>>> On Thu, Aug 20, 2009 at 3:33 PM, Andrew Scherkus < >>>>>> scher...@chromium.org> wrote: >>>>>> >>>>>>> Any opposition to globally declaring an operator<< ostream overload >>>>>>> for TimeDelta in base/time.h? >>>>>>> >>>>>> >>>>>> This will pull the stream headers into all files that use time.h. Is >>>>>> that going to bloat any code or cost compile time? >>>>>> >>>>>> Is there another easy solution like doing DCHECK() << "TimeDelta was: >>>>>> " << myTimeDelta.asInt64OrWhatever()? >>>>>> >>>>>> PK >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>> >> > --~--~---------~--~----~------------~-------~--~----~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~----------~----~----~----~------~----~------~--~---