John -

Sorry to be slow on this reply...

John Torjo wrote:
> > > [1]
> > > unary operator-(time_iterator).
> > > Example: -hours(24) instead of hours(-24).
> > > (seems more straightforward)
> >
> > I see your point, but then don't you have to add all the other
> > operators for consistency?  Not sure that makes sense to do with
> > the iterator.
> >
> 
> I'm sorry I messed up. I wanted it for time_duration :)
> But anyway, unary operator- I think could make some parts of code a little
> more readable. For instance, I had some code where I would use time_iterator
> to go from, lets say, today, to 3 months before.
> 
> I think unary operator- is very easy to implement for time_duration (and
> perhaps date_duration).

Ah, that makes sense -- on the todo list...
 
> > > [2]
> > > Does a *FOUR* functions justify having a jam file?
> > > (greg_month::as_short_string(), greg_month::as_long_string(),
> > >  greg_weekday::as_short_string(), greg_weekday::as_long_string())
> > >
> ... detail omitted...
> I thought a smart compiler could definitely overcome that.
> Something like, a static inline function:
> 
> // Warning: untested code
> static const char* as_short_string( int idx) {
>     static const char * months[] ={ ... };
>     return months[ idx];
> }


Yep, true.

> > localized strings ever gets into the library there will be many more
> > strings (take a look at libs/date_time/test/gregorian/test_facet.cpp).
> > Finally, there may be other functions that eventually will be in the
> > library and not inlined.
> 
> Sure thing. But you haven't convinced me ;)
> Basically, the above could become:
> 
> static const char * default_as_short_string( int idx) {
> ...
> }
> 
> And as for locales, the user can choose the right locale for him, you can
> still have some static functions, like:
> 
> static const char*[] de_short_month_names() {
>     static const char* const
> names[]={"Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","
> Dez", "NAM"};
> return names;
> }
> 
> So, if the user wants a "de" locale, you could - behind the scenes -, select
> de_short_month_names(), de_long_month_names(), etc.
> 
> - they could exist in a distinct header, and they would be #included only if
> the user needs them (wants localized information).
> 

Ok, sure.  I can't really see anything wrong with your argument.  That said,
I still don't want to change this lightly.  While this would make life
easier for users, they are already used to the library. If I get rid of it 
and then want/need it back it won't be nice.  So I'll put this on my
to be considered list, ok?
  
> > > As I understood by looking at the docs, fraction actually means
> > > nano-seconds.
> >
> > Not necessarily.  It depends on the resolution the time duration template
> is
> > instantiated with.  For example, there is a second option that many people
> use
> 
> In that case, I'm confused ;-)
> There should be more info in the docs, I think.

Yep, that's for sure. 
 
> > which only provides microsecond duration resolution, but only requires a
> > single 64 bit integer to represent a time value.  The bottom line is that
> > fractional seconds is a count of the number of fractional seconds at the
> > given resolution.
> 
> Maybe still, for simplicity you could have a time_duration::nanoseconds()
> function.

I agree this would be nice. Of course, I think this will need to fail
compilation if the resolution doesn't support nanoseconds.

> Also, now that I come to think of it :), the following functions would come
> in handy:
> 
> time_duration::total_hours() - the number of hours (ignoring mins, secs,
> etc.)

Don't see how this would be different from the current method.

> time_duration::total_mins() - the total number of minutes (hours*60 +
> minutes() )
> time_duration::total_secs() - you get the idea.
> 
> (of course they can be computed, but it's more error prone)

Yep, these would be handy -- on the list...


Jeff
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to