配列は二要素のタプルからなるデータ構造である。 その第一要素は配列の要素数であり、第二要素は配列の要素となる別のタプルである。 例えば、
(3, (a, b, c))
は a
、b
、c
の三要素からなる配列である。
配列の最も重要な長所は、それが自分自身のサイズを保持していることである。 このおかげで、要素へのアクセスにはサイズを必要としない。 必要なことは、そのインデックスに要素が存在することだけだ。
この構造により、マクロ引数は可変長となることができ(?)、ユーザーが自力でサイズ変化を追尾することをせずとも、データのサイズを変更できる。
配列の要素は BOOST_PP_ARRAY_ELEM
、サイズは BOOST_PP_ARRAY_SIZE
により展開され、さらに配列は BOOST_PP_ARRAY_DATA
により、より基本的なデータ構造であるタプルに変換できる。