2010年8月24日火曜日

BOOST_SCOPED_ENUM_START

 boost::filesystem::copy_file を使おうと思って、オプションについて調べていたら、


BOOST_SCOPED_ENUM_START(copy_option)
{fail_if_exists, overwrite_if_exists};
BOOST_SCOPED_ENUM_END


という記述にぶち当たった。実は、boost::filesystem::overwrite_if_exists と指定したら、コンパイルエラーで怒られて、えー?じゃ何を指定すればいいんだわさ???となったわけです。

 ご存知のとおり、enum は scope じゃないので、コードを書く上で、いろんなものが、ごっちゃり混ざって美しくない。て訳で、BOOST_SCOPED_ENUM_START -> BOOST_SCOPED_ENUM_END で効率よくスコープ付きの enum を定義しようってことらしい。

boost::filesystem::copy_option::overwrite_if_exists で、めでたくコンパイルも通りました。

0 件のコメント: