
On Tue, Jan 24, 2012 at 12:06 PM, Joshua Boyce <raptorfactor@raptorfactor.com> wrote:
I'm currently updating some of my code to take advantage of C++0x features where available, but I also want to retain backwards compatibility with C++03. I was looking at scoped enums and noticed a thread on the mailing list by Beman Dawes discussing a scoped enum emulation implementation for Boost. I see that it's currently being used by Boost, and resides in /boost/detail/scoped_enum_emulation.hpp.
My question is, why is this an implementation detail? Would it be possible for it to be moved to Boost.Config with the other 'helper' macros like BOOST_CONSTEXPR?
Obviously it's not hard to reimplement, but I figured that it would be useful to other library users, so it would be best (imo) if it were moved somewhere public, rather than being hidden away.
It isn't a full emulation of C++11's scoped enum feature. That's probably why it ended up in detail rather than config, although I've forgotten the detailed rationale, if there ever was any. What do others think? Should /boost/detail/scoped_enum_emulation.hpp functionality be moved to config? Are there any improvements that would make the emulation better, without turning something simple into something complex? --Beman