Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of boost. Click here for the latest Boost documentation.
PrevUpHomeNext

Macro BOOST_INTRUSIVE_OPTION_TYPE

BOOST_INTRUSIVE_OPTION_TYPE

Synopsis

// In header: <boost/intrusive/pack_options.hpp>

BOOST_INTRUSIVE_OPTION_TYPE(OPTION_NAME, TYPE, TYPEDEF_EXPR, TYPEDEF_NAME)

Description

Defines an option class of name OPTION_NAME that can be used to specify a type of type TYPE...

struct OPTION_NAME<class TYPE>
{  unspecified_content  };

...that after being combined with boost::intrusive::pack_options, will typedef TYPE as a typedef of name TYPEDEF_NAME. Example:

//[includes and namespaces omitted for brevity]

//This macro will create the following class:
//    template<class VoidPointer>
//    struct my_pointer
//    { unspecified_content };
BOOST_INTRUSIVE_OPTION_TYPE(my_pointer, VoidPointer, boost::remove_pointer<VoidPointer>::type, my_pointer_type)

struct empty_default{};

typedef pack_options< empty_default, typename my_pointer<void*> >::type::my_pointer_type type;

BOOST_STATIC_ASSERT(( boost::is_same<type, void>::value ));


PrevUpHomeNext