Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#9046 closed Tasks (fixed)

Refactoring of lexical cast

Reported by: Antony Polukhin Owned by: Antony Polukhin
Milestone: Boost 1.56.0 Component: lexical_cast
Version: Boost Development Trunk Severity: Cosmetic
Keywords: lexical_cast conversion Cc:

Description

Current implementation of lexical_cast contains many macro, not optimally written templates, antique workarounds for antique compilers, suppressed warnings.

Purpose of this refactoring is to:

  • Reduce code size
  • Improve compilation times
  • Simplify code

Change History (16)

comment:1 by Antony Polukhin, 9 years ago

(In [85475]) Get rid of some macro, improve type traits, fix svn properties, do not supress warnings (refs #9046)

comment:2 by Antony Polukhin, 9 years ago

(In [85482]) Improved some of the metaprogramming methods (refs #9046)

comment:3 by Antony Polukhin, 9 years ago

(In [85483]) Delay character trait extraction (refs #9046)

comment:4 by Antony Polukhin, 9 years ago

(In [85486]) Fix bug introduced by previous commits during conversion of wide character to wide character. Remove duplicate code and add more comments for lcast_ret_unsigned method. Optimize and simplify overflow detection (refs #9046)

comment:5 by Antony Polukhin, 9 years ago

(In [85499]) lcast_put_unsigned in lexical_cast.hpp header is refactored, duplicate code removed (refs #9046)

comment:6 by Antony Polukhin, 9 years ago

(In [85512]) lexical_cast.hpp improvements: better overflow detections for float conversions, more const modifiers (refs #9046)

comment:7 by Antony Polukhin, 9 years ago

(In [85513]) lexical_cast.hpp improvements: no more const_casts, much shorter and better template specializations, some code formatting fixes (refs #9046)

comment:8 by Antony Polukhin, 9 years ago

(In [85523]) lexical_cast.hpp improvements: more comments, BOOST_NOEXCEPT and const; parser_buf moved to boost/detail/basic_pointerbuf.hpp, better formatting and simplified type traits (refs #9046)

comment:9 by Antony Polukhin, 9 years ago

(In [85528]) lexical_cast.hpp improvements: interpreter was split to input and output streams to reduce size of binaries and improve compilation times, fixed typo from previous commit (refs #9046)

comment:10 by Antony Polukhin, 9 years ago

(In [85828]) Make a separate folder for lexical_casts examples, use those examples in documenation and assure that they successfully build and run (refs #9046)

comment:11 by Antony Polukhin, 9 years ago

(In [85830]) Minor update of lexical cast before fixing mingw issues (refs #9046)

comment:12 by Antony Polukhin, 9 years ago

(In [85852]) lexical_cast.hpp improvements: fix bug with floats conversions and improve docs (refs #9046)

comment:13 by Antony Polukhin, 9 years ago

(In [85868]) Fix generic_stringize example compilation on Darvin (refs #9046)

comment:14 by Antony Polukhin, 9 years ago

(In [85901]) Merge lexical_casts documentation and tests to release branch (refs #9046)

comment:15 by Antony Polukhin, 9 years ago

Resolution: fixed
Status: newclosed

(In [86654]) Merged a big bunch of internal code changes from trunk for lexical_cast: dropped support of antique compilers, code changed to produce a smaller binaries and simplify compiler's work, simplified and shortened the code, common with other libraries code moved to 'detail/basic_pointerbuf.hpp' (fixes #9046, fixes #9070, fixes #9271)

comment:16 by Antony Polukhin, 9 years ago

Milestone: To Be DeterminedBoost 1.56.0
Note: See TracTickets for help on using tickets.