min/max問題 再び

今日はのんびりと細かい手直しをしていました。
id:y-hamigaki:20060522 と id:y-hamigaki:20060523 辺りの続きです。
ASIOのスタブ関数が増えたので、別ファイルに移動しよう考えました。
スタブ関数の宣言にはASIOのヘッダのインクルードが必要なのですが、これには次のようなややこしい問題があります。

  • マクロWIN32を事前に定義する必要がある。
  • ファイルobjbase.hを事前にインクルードする必要がある。
  • objbase.hのせいでマクロmin/maxが定義される。これが一部のSTL実装でコンパイルエラーを誘発する。

このため、スタブ関数のヘッダでASIOのヘッダをインクルードしたくなく、かと言ってヘッダを自己完結にしないのは嫌だなぁと悩んでました。
結局、拡張子をippに変更して、ソースコードの途中でインクルードすることでお茶を濁すことにしました。
もう少し、まともな解決方法はないものですかねぇ。