BoostML - 【1.40.0】 Beta 1 available
スケジュールがかなり遅れていますが、
Boost 1.40.0 Beta1が公開されました。
BOOST_SCOPED_ENUMがよさげ。
// boost/detail/scoped_enum_emulation.hpp BOOST_SCOPED_ENUM_START(algae) { green, red, cyan }; BOOST_SCOPED_ENUM_END ... BOOST_SCOPED_ENUM(algae) sample( algae::red ); void foo( BOOST_SCOPED_ENUM(algae) color ); ... sample = algae::green; foo( algae::cyan );
BOOST_STATIC_CONSTANTがstatic const int N = 0;みたいな書き方ができず
enumを使うしかない古いコンパイラと、前者の書き方ができる新しいコンパイラの
どちらでも同じように書けるマクロであるのに対し、
こっちはC++0xのScoped Enum(もしくはStrongly Typed Enum)と呼ばれるenum classと
スコープを持たないC++03のenumで同じ書き方をできるようにしたマクロです。