vmd_reentrant.qbk 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. [/
  2. (C) Copyright Edward Diener 2011-2015
  3. Distributed under the Boost Software License, Version 1.0.
  4. (See accompanying file LICENSE_1_0.txt or copy at
  5. http://www.boost.org/LICENSE_1_0.txt).
  6. ]
  7. [section:vmd_reentrant Boost PP re-entrant versions]
  8. Nearly all macros in VMD have equivalent reentrant versions which are
  9. meant to be used in a BOOST_PP_WHILE loop. These are versions which have
  10. an underscore D suffix, take the next available BOOST_PP_WHILE iteration
  11. as their first parameter, and then have the exact same functionality as
  12. their unsuffixed equivalents. They can be used in BOOST_PP_WHILE loops
  13. to provide slightly quicker preprocessing but, as the documentation for
  14. BOOST_PP_WHILE and BOOST_PP_WHILE_##d explain, they do not have to be used.
  15. These macros are:
  16. Arrays
  17. * BOOST_VMD_IS_ARRAY_D
  18. * BOOST_VMD_IS_EMPTY_ARRAY_D
  19. * BOOST_VMD_ASSERT_IS_ARRAY_D
  20. Identifiers
  21. * BOOST_VMD_IS_IDENTIFIER_D
  22. * BOOST_VMD_ASSERT_IS_IDENTIFIER_D
  23. Lists
  24. * BOOST_VMD_IS_LIST_D
  25. * BOOST_VMD_IS_EMPTY_LIST_D
  26. * BOOST_VMD_ASSERT_IS_LIST_D
  27. Sequences
  28. * BOOST_VMD_ELEM_D
  29. * BOOST_VMD_ENUM_D
  30. * BOOST_VMD_EQUAL_D
  31. * BOOST_VMD_GET_TYPE_D
  32. * BOOST_VMD_IS_MULTI_D
  33. * BOOST_VMD_IS_UNARY_D
  34. * BOOST_VMD_NOT_EQUAL_D
  35. * BOOST_VMD_SIZE_D
  36. * BOOST_VMD_TO_ARRAY_D
  37. * BOOST_VMD_TO_LIST_D
  38. * BOOST_VMD_TO_SEQ_D
  39. * BOOST_VMD_TO_TUPLE_D
  40. Seqs
  41. * BOOST_VMD_IS_SEQ_D
  42. * BOOST_VMD_ASSERT_IS_SEQ_D
  43. Types
  44. * BOOST_VMD_IS_TYPE_D
  45. * BOOST_VMD_ASSERT_IS_TYPE_D
  46. Other
  47. * BOOST_VMD_IS_PARENS_EMPTY_D
  48. [endsect]