読者です 読者をやめる 読者になる 読者になる

Boost 1.40.0 Beta1

C++

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で同じ書き方をできるようにしたマクロです。