Linuxでも動きました
Hamigaki.AudioのPOSIX版実装をLinuxで動作確認しようと、VMwareにFedora Core 5をインストールしました。
インストール時に開発ツールを選択すると、Boostもインストールされていました。bjamは入っていなかったのでビルドしました。インストールされているライブラリ名にcommon variant tag(コンパイラ名やバージョンなど)がついていないので、bjam変数NO_COMMON_VARIANT_TAGを追加しました。bjam -sNO_COMMON_VARIANT_TAG=1 としてください。
意外とすんなりとコンパイルが通ってしまいましたが、一点だけ問題がありました。
// hamigaki/iostreams/catable.hpp namespace hamigaki { namespace iostreams { template<class Source1, class Source2> class concatenation; } } // End namespaces iostreams, hamigaki. // hamigaki/audio/sine_wave.hpp (説明のため、マクロは展開済み) namespace hamigaki { namespace audio { class sine_wave_source { // 略 }; } } // End namespaces audio, hamigaki. namespace hamigaki{namespace iostreams{namespace cat_operators{ template<typename Component> ::hamigaki::iostreams::concatenation< hamigaki::audio::sine_wave_source, Component > operator+( const hamigaki::audio::sine_wave_source& s, const Component& c ) { return ::hamigaki::iostreams::concatenation< hamigaki::audio::sine_wave_source, Component> (s, c); }; }}}
g++4.1だと、concatenationが不完全型でエラーになりました。
仕方がないので、catable.hppでconcatenate.hppとloop.hppをインクルードするようにしました。まぁ、前々からあやしいとは思っていたんですけど。
今日の成果物
LinuxでもRegression Testsは100%パスです。(DirectXは除く)