> From: Jeff Garland [mailto:[EMAIL PROTECTED]] > > > Hmmm while I can see your point, I still think a default > constructor should > > be provided. And as I, along with all of the users in the > messages you cited > > seemed to have expected that default constructed dates > would be set to > > 'not_a_date_time', I'd suggest that this would be the most > sensible default > > value. I don't see any point in *not* providing a default value. > > Keeping the interface to a minimum, preventing > accidental/surprising values, > avoiding the controversy of discussing what an appropriate value for > the default constructor is. Well, 2 out of 3 anyway :-) > > But seriously I'm willing to add it, but I don't think I've heard > a compelling use case yet...
I wrote a date formatting function. This function can take a datetime, date, or time duration, and format it to text. The core however, is implemented using datetime_t. The function implements the format as described in Microsoft's documentation: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbaac10/html/acproFormatDate.asp However, to implement format "General Date" (format letter "c"), I need to know if the given input contains a date, a time, or a datetime. Since the functions pretty much perform the same thing, I have a core that implements functionality for datetime and then I use this in the function that implements date/time separately. However, to implement the no time I have to query whether the time is 0:0:0.000. This is obviously problematic, since this is a perfectly valid time. For the date, I don't even have a "start date" to use. So I pass the core function a bool that tells it whether to ignore the date, and pass in an arbitrary date when I want just the time. It would be nicer, though, if I could just pass "not_a_date" or "not_a_time". I could even expect the datetime function to throw an exception if the requested format is for "month" and the "not_a_date" was passed. There is also a problem in serialization. A lot of serialization systems first construct an empty struct, and then read in the values. Doing it this way prevents serialization in those systems of dates. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
