vmd_naming.html 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
  4. <title>Naming conventions</title>
  5. <link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
  6. <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
  7. <link rel="home" href="../index.html" title="Chapter&#160;1.&#160;The Variadic Macro Data Library 1.9">
  8. <link rel="up" href="../index.html" title="Chapter&#160;1.&#160;The Variadic Macro Data Library 1.9">
  9. <link rel="prev" href="../index.html" title="Chapter&#160;1.&#160;The Variadic Macro Data Library 1.9">
  10. <link rel="next" href="vmd_whyhow.html" title="Why and how to use">
  11. </head>
  12. <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
  13. <table cellpadding="2" width="100%"><tr>
  14. <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
  15. <td align="center"><a href="../../../../../index.html">Home</a></td>
  16. <td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
  17. <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
  18. <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
  19. <td align="center"><a href="../../../../../more/index.htm">More</a></td>
  20. </tr></table>
  21. <hr>
  22. <div class="spirit-nav">
  23. <a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="vmd_whyhow.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
  24. </div>
  25. <div class="section">
  26. <div class="titlepage"><div><div><h2 class="title" style="clear: both">
  27. <a name="variadic_macro_data.vmd_naming"></a><a class="link" href="vmd_naming.html" title="Naming conventions">Naming conventions</a>
  28. </h2></div></div></div>
  29. <p>
  30. All of the macros in the library begin with the prefix BOOST_VMD_, where VMD
  31. stands for 'Variadic Macro Data'.
  32. </p>
  33. <p>
  34. Following the prefix, certain names in the macros refer to data types in this
  35. library or Boost PP. These names and their data types are:
  36. </p>
  37. <div class="orderedlist"><ol class="orderedlist" type="1">
  38. <li class="listitem">
  39. TUPLE = Boost PP tuple data type.
  40. </li>
  41. <li class="listitem">
  42. ARRAY = Boost PP array data type.
  43. </li>
  44. <li class="listitem">
  45. LIST = Boost PP list data type.
  46. </li>
  47. <li class="listitem">
  48. SEQ = Boost PP seq data type.
  49. </li>
  50. <li class="listitem">
  51. IDENTIFIER = A VMD identifier
  52. </li>
  53. <li class="listitem">
  54. NUMBER = A VMD number
  55. </li>
  56. <li class="listitem">
  57. TYPE = A VMD type
  58. </li>
  59. </ol></div>
  60. <p>
  61. I have used most of these names in order to mimic the naming of Boost PP as
  62. closely as possible. Subsequent use of the words 'array', 'list', 'seq', and
  63. 'tuple' refer to these Boost PP data types unless otherwise noted. See the
  64. help for Boost PP for any explanation of these data types.
  65. </p>
  66. <p>
  67. The term 'sequence' refers to a sequence of VMD data types and is not the same
  68. as a Boost PP sequence which is always referred to in this documentation as
  69. a 'seq'.
  70. </p>
  71. <p>
  72. The term 'return' refers to the expansion of a macro. I use the terminology
  73. of a macro "returning some data" rather than the terminology of a
  74. macro "expanding to some data", even if the latter is more accurate,
  75. because it more closely corresponds to the way I believe C++ programmers think
  76. about macro programming.
  77. </p>
  78. <p>
  79. The term 'emptiness' refers to no preprocessor data being passed to or returned
  80. from a macro. I have avoided the word 'nothing' because it has too vague a
  81. meaning.
  82. </p>
  83. <p>
  84. The term 'data type' refers to the various preprocessor input types which VMD
  85. can parse and which are listed above, also including emptiness.
  86. </p>
  87. <p>
  88. The term 'v-type' refers to a VMD type, the term 'number' returns to a VMD
  89. number and the term 'identifier' refers to a VMD identifier. All these will
  90. be explained in their proper place.
  91. </p>
  92. <p>
  93. The term "UB" stands for "undefined behavior" as it is
  94. specified in the C++ standard.
  95. </p>
  96. </div>
  97. <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
  98. <td align="left"></td>
  99. <td align="right"><div class="copyright-footer">Copyright &#169; 2010-2017 Tropic Software
  100. East Inc</div></td>
  101. </tr></table>
  102. <hr>
  103. <div class="spirit-nav">
  104. <a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="vmd_whyhow.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
  105. </div>
  106. </body>
  107. </html>