Are there better conversion functions from ISO date format (calendar, ordinal, week dates) in basic and/or extended format? Should conversion from invalid iso date like "20050231" fail or produce same results as date(2005,02,31). (I know that it produces the same results, but is it right to convert invalid iso date representation to valid date?) Another thing I noted, some conversion functions accept const std::string &, but most of them accept plain std::string, isn't better to convert all of them to constant references??? If anybody interested, I wrote such function that accepts iso date string in any of the above mentioned 6 combinations and returns date. It runs 90-100 times faster than equivalent date_from_iso_string from boost. And yes, it does make sure that "20050229" fails