Found this while working on the fix in #156
There are 2 levels of preprocessor macros used for the stream operators of generators and distributions:
BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR / BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR
Replacement using static print/read functions for BOOST_MSVC, <= 1310 and SUNPRO_CC
BOOST_RANDOM_NO_STREAM_OPERATORS: Disable stream operators when BOOST_NO_OPERATORS_IN_NAMESPACE || BOOST_NO_MEMBER_TEMPLATE_FRIENDS
However they are used very inconsistently.
I can offer to fix this but would need a decision first:
- Get rid of all those macros replacing them by standard
operator<< where used
- Use them where not used yet
2b. Then use BOOST_RANDOM_NO_STREAM_OPERATORS to turn those macros into static print & read functions, as current just without the operators instead of having to check for this macro in each case.
Found this while working on the fix in #156
There are 2 levels of preprocessor macros used for the stream operators of generators and distributions:
BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR/BOOST_RANDOM_DETAIL_ISTREAM_OPERATORReplacement using static print/read functions for
BOOST_MSVC, <= 1310andSUNPRO_CCBOOST_RANDOM_NO_STREAM_OPERATORS: Disable stream operators whenBOOST_NO_OPERATORS_IN_NAMESPACE || BOOST_NO_MEMBER_TEMPLATE_FRIENDSHowever they are used very inconsistently.
I can offer to fix this but would need a decision first:
operator<<where used2b. Then use
BOOST_RANDOM_NO_STREAM_OPERATORSto turn those macros into staticprint&readfunctions, as current just without the operators instead of having to check for this macro in each case.