basic_fileとcopy

falcom_playは個人的にも毎日使っているんですが、ファイル名を間違えた場合に、

Error: ogg error

と表示されるのが気になります。
原因はファイル読み込みに使用しているfile_sourceがオープンに失敗しても例外を投げないので、oggのヘッダ処理でエラーが検知されていることにあります。
Boost.Iostreamsにはファイルをオープンするデバイスがいくつかありますが、失敗時に例外を投げないのはbasic_fileだけのようです。これは、実装のベースとなっているbasic_filebuf::open()が例外を投げないからのですが、引数に無名オブジェクトを使用することの多いiostreams::copy()と相性が悪いのです。
というか、basic_fileのバグですよね、これ。