Main Page File List File Members

# empty.hpp File Reference

## Defines

#define | BOOST_PREPROCESSOR_EMPTY()
| Expands to nothing. Used with BOOST_PREPROCESSOR_IF() and as an unused parameter. More...

## Detailed Description

Click here to see the header.

## Define Documentation

#define BOOST_PREPROCESSOR_EMPTY | (

)

Expands to nothing. Used with BOOST_PREPROCESSOR_IF() and as an unused parameter.

Example usage as the implementation of BOOST_PREPROCESSOR_COMMA_IF(C):

      #define BOOST_PREPROCESSOR_COMMA_IF(C)\
        BOOST_PREPROCESSOR_IF(C,BOOST_PREPROCESSOR_COMMA,BOOST_PREPROCESSOR_EMPTY)()

Example usage as an unused macro parameter:

      #define BOOST_PREPROCESSOR_DEF(CV)\
        template<class base>            \
        CV typename implement_subscript_using_begin_subscript<base>::value_type&\
          implement_subscript_using_begin_subscript<base>::operator[]\
          ( index_type                  \
              i                         \
          ) CV                          \
        { return base::begin()[i];      \
        }

      BOOST_PREPROCESSOR_DEF(BOOST_PREPROCESSOR_EMPTY())
      BOOST_PREPROCESSOR_DEF(const)
      #undef BOOST_PREPROCESSOR_DEF

The above expands to:

      template<class base>
      typename implement_subscript_using_begin_subscript<base>::value_type&
        implement_subscript_using_begin_subscript<base>::operator[]
        ( index_type
            i
        )
      { return base::begin()[i];
      }

      template<class base>
      const typename implement_subscript_using_begin_subscript<base>::value_type&
        implement_subscript_using_begin_subscript<base>::operator[]
        ( index_type
            i
        ) const
      { return base::begin()[i];
      }

In case you wonder, the above code is part of a generalized layer for implementing the subscripting operators of a random access container.

© Copyright Housemarque, Inc. 2001

Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability for any purpose.

Generated: 25 Nov 2001