On Sat, Nov 4, 2017 at 1:16 PM, Edward Diener via Boost < boost@lists.boost.org> wrote:
On 11/4/2017 12:57 PM, Andrey Semashev via Boost wrote:
On 11/04/17 18:40, Peter Dimov via Boost wrote:
Andrey Semashev wrote:
The proposal to make Boost.Random header-only was rejected by Steven.
This sounds like essential context that might have been worth mentioning. :-)
Steven is right that we're still dependent on Boost.System, this needs to be solved somehow.
I think, Steven was more opposed to the whole idea of header-only code, regardless of implementation.
Steven can chime in if he wants but my interpretation was that Steven was rightly concerned with the idea that making Boost random header-only only works if the end-user is forced to use Boost system as header-only, and we do not want to tell the end-user what he must do.
Making Boost.Random header-only could still be considered an improvement, whether or not what it depends on is header-only. Perhaps defining BOOST_ERROR_CODE_HEADER_ONLY would allow someone to use both libraries in a header-only environment? I'm not sure. Given that random_device is the only implementation that uses system_error, one could make the errors in random_device more abstract with its own exception type, i.e. boost::random::entropy_error : public std::runtime_error, and sever the link between the libraries, and then a header-only implementation of random would be immediately useful... - Jim