On 8/23/2014 8:21 AM, Niall Douglas wrote:
On 22 Aug 2014 at 11:46, Edward Diener wrote:
I was not aware that every other library puts its documentation on its own website outside of GitHub. In that case it seems to me that it should have been a requirement of submitting a library to Boost or at least strongly suggested somewhere.
An inspection of the review queue makes it very clear.
No it does not. Unless there is some published policy I have never understood that library documentation must be hosted separately from a library itself.
I struggle to see how variadic macros add to Boost PP in such a limited use case. This is the source of my difficulty.
The Boost TTI library ( I am the developer ) uses variadic macros in order to pass, among other things the name of the element to be introspected. Many other libraries use macros, and some variadic macros, as part of its interface. In my tests using Boost PP, since I work on fixes to it, there are about 45 other libraries that use Boost PP. There are a number of Boost libraries that use variadic macros in advanced cases. There are probably many end-users out there using variadic macros in their own programming.
Are you saying that VMD has resulted from internal code in TTI that you decided to tidy up and make available as a standalone library? That would be a *very* different situation to writing greenfield code.
How you interpret the above from my comment is beyond me. Clearly I said nothing in what I wrote to even imply it.
For reference, I do believe that in C++ 14 code there has to be a high bar set on the use of macros in public interfaces, especially as C++ 17 Modules will deprecate that. For that reason, macros in interfaces is a bad idea.
I do not understand the link between C++ 17 Modules and macro programming.
C++ Modules is expected to obsolete macro programming, in fact eliminating macros completely from interface files is one of its chief goals. It tells you all about it in its TS.
If C++17 Modules is able to obsolete all macro programming that is fine with me. But that time is hardly here now and macro programming is still very much part of Boost libraries.
Macro programming will remain supported in non-interface files. I'm okay with that, it can save a lot of repetitive copy and pasting.
I do not know what you mean by "non-interface" files.
Again, if anyone can chime in with an example real world use of Edward's VMD library I would feel much happier. I need some example code to look at.