
Paul Mensonides wrote:
I see no problem with adding the functionality, but the macros still cannot safely be made public. On other compilers (besides Borland), their use causes stability problems. Using something like the above doesn't help (it would actually be slightly worse) because of the reliance on intermediates in the argument--which requires that expansion order proceed as it should (which is not the case on some preprocessors).
That's a shame. I find it very useful.
Also, with a full working BOOST_PP_IS_UNARY, I think it should be possible to make BOOST_PP_SEQ_NIL act as an empty sequence, if I write a patch to do that would it be accepted?
It is already possible because the identifier is known.
I should have realised that, since that's how lists work.
Lack of a nil sequences (until we get placemarkers) was a conscience decision. An important property of sequences is the ability to directly append. By definition, if A and B are both sequences, then A B is also a sequence.
That makes sense. I guess my version isn't that useful then. But, it's a nice trick and I can use it in my own stuff, which will probably never work on preprocessors where BOOST_PP_IS_UNARY is unstable. thanks, Daniel