boost::none - simpler and works with MSVC

This commit is contained in:
Andrzej Krzemienski
2015-10-01 15:26:15 +02:00
parent 593710e961
commit 9f8dd57386
8 changed files with 66 additions and 18 deletions

View File

@ -16,13 +16,25 @@
namespace boost {
#ifdef BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE
namespace detail { struct none_helper{}; }
typedef int detail::none_helper::*none_t ;
#else
#elif defined BOOST_OPTIONAL_USE_SINGLETON_DEFINITION_OF_NONE
class none_t {};
#endif
#else
struct none_t
{
struct init_tag{};
explicit none_t(init_tag){} // to prevent default constructor
};
#endif // old implementation workarounds
} // namespace boost
#endif
#endif // header guard