On 18.05.2016 11:23, Paul A. Bristow wrote:
I'm surprised that you think it can't be done with the current Boost docs and examples system, but I haven't looked at it in detail.
The complication here is the Boost Range adaptors. They have two syntaxes (function call and pipe) that I generate from a single source file[0]: std::cout << "Reversed abc: " << PARENWRAP(CALL0(boost::adaptors::REVERSE,str)) generates two files, one with std::cout << "Reversed abc: " << boost::adaptors::reverse(str) and one with std::cout << "Reversed abc: " << (str | boost::adaptors::reversed) Ideally, I would like to keep it that way, for DRY reasons and to make sure the call/pipe examples stay symmetric, so people can compare what difference the two syntax makes. I don't know how to do that with bjam alone. Further, I would like to compile and run the examples, and compare them against pre-recorded output to make sure output is as intended, and that code/output are in sync. The difficult part here is the file-diffing, which I don't really know how to do in bjam alone without calling external programs. Might be possible though. If anyone has ideas how to handle these two challenges, it'd be great to hear about them! Regards, Chris [0]: http://github.com/Grk0/boost-range-for-humans/blob/master/src/reversed.cpp https://greek0.net/boost-range/boost-adaptors-reverse.html https://greek0.net/boost-range/boost-adaptors-reversed.html