free-function-group

BoostBookには、クラスに関連するフリー関数用のタグとして、<free-function-group>が用意されています。ちょっと変な感じですが、<class>の子要素として使います。Boost.Arrayの場合だと、こんな感じです。

<class name="array">

  <!-- 略 -->

  <free-function-group name="specialized algorithms">
    <function name="swap">
       <!-- 略 -->
    </function> 
  </free-function-group>
</class>

この<free-function-group>には落とし穴があって、<function>に何かのドキュメント(<returns>とか<purpose>など)を付けないと、生成されるdocbookファイル中で関数名のidが重複してしまいます。
これに気付くのに二日かかりました。
Doxygenで自動生成したりして、先に関数のインタフェースだけ書くと、この罠にはまるので注意が必要です。