Boost logo

Boost :

From: Jeff Garland (jeff_at_[hidden])
Date: 2005-11-28 08:50:37


On Mon, 28 Nov 2005 15:26:54 +0200, Roman Yakovenko wrote
> > [mailto:boost-bounces_at_[hidden]]On Behalf Of Jeff Garland
>
> >
> > Actually it's intentional to not do an automatic conversion
> > there. Call
> > utc_time() to get the ptime.
>
> Could you explains the reasons?

The user needs to think about what is being compared. ptime doesn't carry
along a timezone so it could represent a utc_time or a locally adjusted time
-- only the users knows which it is. By explicity asking to compare against
utc_time() or local_time() the code intent should be clearer. So you
basically have 2 options for the compare:

  local_date_time l_time(...);
  ptime t(...);
  if (t == l_time.utc_time())
 OR
  if (t == l_time.local_time())

> I see 2 problems with this approach:
>
> 1. creation of ptime object on stack, why?

It's at most a couple ints....usually just a 64 bit int, I think you can
afford it.

> 2. Base class already has those operators, so why do you hide them?

Unless I'm missing something the base class provides for comparison to other
local times not ptimes:

  local_date_time l_time1(...), l_time2(...);
  if (ltime_1 == ltime_2) {...

Jeff


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk