boost.max.id.length

BoostBook(というかDocBook)はidを振っていない項目に対して、id326930.htmlのようなファイル名を自動生成します。
自動生成される名前は毎回変わるのでdiff等のツールと相性が良くありません。
大抵は、タグにnameやidを設定することで回避可能ですが、idの長さには制限があって、boost.max.id.lengthより長い場合は指定したidが無視されるようです。


boost.max.id.lengthの規定値は26なので、

<class name="direct_sound_capture_buffer">

はアウトです。
もちろんXSLパラメータを変更すれば問題ないわけですが、BoostBookを使う場合はクラス名を26文字以内に収めておいたほうがよいでしょう。


さらに、enumの場合はidが"enum." + 名前空間 + "." + 名前になるので、

<namespace name="hamigaki">
  <namespace name="audio">
    <enum name="sample_format_type">

だと、enum.hamigaki.audio.sample_format_typeになって26文字をオーバーします。
この仕様により、ほとんどのenumは自動生成のidになります。
むしろ、boost.max.id.lengthを巨大な値にしておいた方がよいかもしれません。


(7/8:追記)
CVSに上がってるバージョンではboost.max.id.lengthによる制限はなくなっている模様。