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 8[section:vmd_naming Naming conventions] 9 10All of the macros in the library begin with the prefix BOOST_VMD_, 11where VMD stands for 'Variadic Macro Data'. 12 13Following the prefix, certain names in the macros refer to data types 14in this library or Boost PP. These names and their data types are: 15 16# TUPLE = Boost PP tuple data type. 17# ARRAY = Boost PP array data type. 18# LIST = Boost PP list data type. 19# SEQ = Boost PP seq data type. 20# IDENTIFIER = A VMD identifier 21# NUMBER = A VMD number, which is a Boost PP number with some enhancements 22# TYPE = A VMD type 23 24I have used most of these names in order to mimic the naming of Boost PP 25as closely as possible. Subsequent use of the words 'array', 'list', 26'seq', and 'tuple' refer to these Boost PP data types unless otherwise 27noted. See the help for Boost PP for any explanation of these 28data types. 29 30The term 'sequence' refers to a sequence of VMD data types and is not the 31same as a Boost PP sequence which is always referred to in this documentation 32as a 'seq'. 33 34The term 'return' refers to the expansion of a macro. I use the terminology 35of a macro "returning some data" rather than the terminology of a macro 36"expanding to some data", even if the latter is more accurate, because it 37more closely corresponds to the way I believe C++ programmers think about 38macro programming. 39 40The term 'emptiness' refers to no preprocessor data being passed to or returned 41from a macro. I have avoided the word 'nothing' because it has too vague a meaning. 42 43The term 'data type' refers to the various preprocessor input types 44which VMD can parse and which are listed above, also including emptiness. 45 46The term 'v-type' refers to a VMD type, the term 'number' returns to a VMD number 47and the term 'identifier' refers to a VMD identifier. All these will be explained 48in their proper place. 49 50The term "UB" stands for "undefined behavior" as it is specified in the C++ standard. 51 52[endsect]