Opened 14 years ago

#2811 new Feature Requests

date_time iostream dependencies

Reported by: Nigel T Stewart <nigels@…> Owned by: az_sw_dude
Milestone: Boost 1.39.0 Component: date_time
Version: Boost 1.38.0 Severity: Problem
Keywords: iostream BOOST_NO_IOSTREAM _STLP_NO_IOSTREAMS Cc:

Description

For footprint and performance reasons our codebase uses boost with BOOST_NO_IOSTREAM. However, date_time has some iostream dependency in the form of std::ostringstream used for formatting string outputs. For example, the method partial_date::to_string uses std::ostringstream to convert an integer to a string.

An alternative is as follows:

   //! Returns string suitable for use in POSIX time zone string
   /*! Returns string formatted with up to 3 digits: 
    * Jan-01 == "0" 
    * Feb-29 == "58"
    * Dec-31 == "365" */
   virtual std::string to_string() const
   {
     date_type d(2004, month_, day_);
     unsigned short c = d.day_of_year() - 1; // numbered 0-365 while day_of_year is 1 based...
     std::string ret;
     if (c/100) {
       ret += '0' + c/100;
       c = c%100;
     }
     if (c/10) {
       ret +=  '0' + c/10;
       c = c%10;
     }
     ret +=  '0' + c;
     return ret;
   }

Would you be likely to accept a patch that simply omits all the iostream-dependent API, if BOOST_NO_IOSTREAM is defined?

Is there a boost-friendly alternative to std::ostringstream?

Change History (0)

Note: See TracTickets for help on using tickets.