| Home | Libraries | People | FAQ | More

## 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 ));