Preprocessor library is now C friendly.

[SVN r12552]
This commit is contained in:
Vesa Karvonen
2002-01-29 14:13:10 +00:00
parent 972f6222d1
commit df1244ba20
137 changed files with 1671 additions and 1272 deletions

View File

@ -1,18 +1,19 @@
#ifndef BOOST_PREPROCESSOR_LIST_ADT_HPP
#define BOOST_PREPROCESSOR_LIST_ADT_HPP
// Copyright (C) 2001
// Housemarque Oy
// http://www.housemarque.com
//
// Permission to copy, use, modify, sell and distribute this software is
// granted provided this copyright notice appears in all copies. This
// software is provided "as is" without express or implied warranty, and
// with no claim as to its suitability for any purpose.
/* Copyright (C) 2001
* Housemarque Oy
* http://www.housemarque.com
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* See http://www.boost.org for most recent version.
*/
// See http://www.boost.org for most recent version.
/*! \file
/** \file
<a href="../../../../boost/preprocessor/list/adt.hpp">Click here to see the header.</a>
@ -26,8 +27,8 @@ code that depends on the internal representation details.
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/logical/not.hpp>
//! List constructor.
/*!
/** List constructor.
Lists are build using list constructors BOOST_PP_LIST_NIL and
BOOST_PP_LIST_CONS(). For example,
@ -50,14 +51,14 @@ Both of the above lists contain 5 elements: 1, 2, 3, 4 and 5.
*/
#define BOOST_PP_LIST_CONS(H,T) (H,T,1)
//! List nil constructor.
/*!
/** List nil constructor.
See BOOST_PP_LIST_CONS().
*/
#define BOOST_PP_LIST_NIL (_,_,0)
//! Expands to 1 if the list is not nil and 0 otherwise.
/*!
/** Expands to 1 if the list is not nil and 0 otherwise.
See BOOST_PP_LIST_IS_NIL().
*/
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
@ -66,8 +67,8 @@ See BOOST_PP_LIST_IS_NIL().
# define BOOST_PP_LIST_IS_CONS(L) BOOST_PP_TUPLE3_ELEM2 L
#endif
//! Expands to 1 if the list is nil and 0 otherwise.
/*!
/** Expands to 1 if the list is nil and 0 otherwise.
See BOOST_PP_LIST_IS_CONS().
*/
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__) && __MWERKS__ <= 0x2406
@ -76,8 +77,8 @@ See BOOST_PP_LIST_IS_CONS().
# define BOOST_PP_LIST_IS_NIL(L) BOOST_PP_NOT(BOOST_PP_TUPLE3_ELEM2 L)
#endif
//! Expands to the first element of the list. The list must not be nil.
/*!
/** Expands to the first element of the list. The list must not be nil.
For example,
<PRE>\verbatim
@ -94,8 +95,8 @@ See BOOST_PP_LIST_REST().
# define BOOST_PP_LIST_FIRST(L) BOOST_PP_TUPLE3_ELEM0 L
#endif
//! Expands to a list of all but the first element of the list. The list must not be nil.
/*!
/** Expands to a list of all but the first element of the list. The list must not be nil.
For example,
<PRE>\verbatim

View File

@ -1,26 +1,27 @@
#ifndef BOOST_PREPROCESSOR_LIST_APPEND_HPP
#define BOOST_PREPROCESSOR_LIST_APPEND_HPP
// Copyright (C) 2001
// Housemarque Oy
// http://www.housemarque.com
//
// Permission to copy, use, modify, sell and distribute this software is
// granted provided this copyright notice appears in all copies. This
// software is provided "as is" without express or implied warranty, and
// with no claim as to its suitability for any purpose.
/* Copyright (C) 2001
* Housemarque Oy
* http://www.housemarque.com
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* See http://www.boost.org for most recent version.
*/
// See http://www.boost.org for most recent version.
/*! \file
/** \file
<a href="../../../../boost/preprocessor/list/append.hpp">Click here to see the header.</a>
*/
#include <boost/preprocessor/list/fold_right.hpp>
//! Catenates two lists together.
/*!
/** Catenates two lists together.
For example,
<PRE>\verbatim

View File

@ -1,26 +1,27 @@
#ifndef BOOST_PFIRST_NPROCESSOR_LIST_AT_HPP
#define BOOST_PFIRST_NPROCESSOR_LIST_AT_HPP
// Copyright (C) 2001
// Housemarque Oy
// http://www.housemarque.com
//
// Permission to copy, use, modify, sell and distribute this softwaFIRST_N is
// granted provided this copyright notice appears in all copies. This
// software is provided "as is" without express or implied warranty, and
// with no claim as to its suitability for any purpose.
/* Copyright (C) 2001
* Housemarque Oy
* http://www.housemarque.com
*
* Permission to copy, use, modify, sell and distribute this softwaFIRST_N is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* See http://www.boost.org for most recent version.
*/
// See http://www.boost.org for most recent version.
/*! \file
/** \file
<a href="../../../../boost/preprocessor/list/at.hpp">Click here to see the header.</a>
*/
#include <boost/preprocessor/list/rest_n.hpp>
//! Expands to the I:th element of the list L. The first element is at index 0.
/*!
/** Expands to the I:th element of the list L. The first element is at index 0.
For example,
<PRE>\verbatim

View File

@ -1,18 +1,19 @@
#ifndef BOOST_PREPROCESSOR_LIST_CAT_HPP
#define BOOST_PREPROCESSOR_LIST_CAT_HPP
// Copyright (C) 2001
// Housemarque Oy
// http://www.housemarque.com
//
// Permission to copy, use, modify, sell and distribute this software is
// granted provided this copyright notice appears in all copies. This
// software is provided "as is" without express or implied warranty, and
// with no claim as to its suitability for any purpose.
/* Copyright (C) 2001
* Housemarque Oy
* http://www.housemarque.com
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* See http://www.boost.org for most recent version.
*/
// See http://www.boost.org for most recent version.
/*! \file
/** \file
<a href="../../../../boost/preprocessor/list/cat.hpp">Click here to see the header.</a>
*/
@ -20,8 +21,8 @@
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
//! Catenates all elements of the list.
/*!
/** Catenates all elements of the list.
For example,
<PRE>\verbatim

View File

@ -1,18 +1,19 @@
#ifndef BOOST_PREPROCESSOR_LIST_ENUM_HPP
#define BOOST_PREPROCESSOR_LIST_ENUM_HPP
// Copyright (C) 2001
// Housemarque Oy
// http://www.housemarque.com
//
// Permission to copy, use, modify, sell and distribute this software is
// granted provided this copyright notice appears in all copies. This
// software is provided "as is" without express or implied warranty, and
// with no claim as to its suitability for any purpose.
/* Copyright (C) 2001
* Housemarque Oy
* http://www.housemarque.com
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* See http://www.boost.org for most recent version.
*/
// See http://www.boost.org for most recent version.
/*! \file
/** \file
<a href="../../../../boost/preprocessor/list/enum.hpp">Click here to see the header.</a>
*/
@ -20,8 +21,8 @@
#include <boost/preprocessor/comma_if.hpp>
#include <boost/preprocessor/list/for_each.hpp>
//! Converts the list to a comma separated list.
/*!
/** Converts the list to a comma separated list.
For example,
<PRE>\verbatim

View File

@ -1,26 +1,27 @@
#ifndef BOOST_PREPROCESSOR_LIST_FILTER_HPP
#define BOOST_PREPROCESSOR_LIST_FILTER_HPP
// Copyright (C) 2001
// Housemarque Oy
// http://www.housemarque.com
//
// Permission to copy, use, modify, sell and distribute this software is
// granted provided this copyright notice appears in all copies. This
// software is provided "as is" without express or implied warranty, and
// with no claim as to its suitability for any purpose.
/* Copyright (C) 2001
* Housemarque Oy
* http://www.housemarque.com
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* See http://www.boost.org for most recent version.
*/
// See http://www.boost.org for most recent version.
/*! \file
/** \file
<a href="../../../../boost/preprocessor/list/filter.hpp">Click here to see the header.</a>
*/
#include <boost/preprocessor/list/fold_right.hpp>
//! Expands to a list containing all the elements X of the list for which F(D,P,X) is true.
/*!
/** Expands to a list containing all the elements X of the list for which F(D,P,X) is true.
For example,
<PRE>\verbatim

View File

@ -1,18 +1,19 @@
#ifndef BOOST_PREPROCESSOR_LIST_FIRST_N_HPP
#define BOOST_PREPROCESSOR_LIST_FIRST_N_HPP
// Copyright (C) 2001
// Housemarque Oy
// http://www.housemarque.com
//
// Permission to copy, use, modify, sell and distribute this software is
// granted provided this copyright notice appears in all copies. This
// software is provided "as is" without express or implied warranty, and
// with no claim as to its suitability for any purpose.
/* Copyright (C) 2001
* Housemarque Oy
* http://www.housemarque.com
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* See http://www.boost.org for most recent version.
*/
// See http://www.boost.org for most recent version.
/*! \file
/** \file
<a href="../../../../boost/preprocessor/list/first_n.hpp">Click here to see the header.</a>
*/
@ -21,8 +22,8 @@
#include <boost/preprocessor/list/adt.hpp>
#include <boost/preprocessor/while.hpp>
//! Expands to a list of the first N elements of the list.
/*!
/** Expands to a list of the first N elements of the list.
For example,
<PRE>\verbatim

View File

@ -1,18 +1,19 @@
#ifndef BOOST_PREPROCESSOR_LIST_FOLD_LEFT_HPP
#define BOOST_PREPROCESSOR_LIST_FOLD_LEFT_HPP
// Copyright (C) 2001
// Housemarque Oy
// http://www.housemarque.com
//
// Permission to copy, use, modify, sell and distribute this software is
// granted provided this copyright notice appears in all copies. This
// software is provided "as is" without express or implied warranty, and
// with no claim as to its suitability for any purpose.
/* Copyright (C) 2001
* Housemarque Oy
* http://www.housemarque.com
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* See http://www.boost.org for most recent version.
*/
// See http://www.boost.org for most recent version.
/*! \file
/** \file
<a href="../../../../boost/preprocessor/list/fold_left.hpp">Click here to see the header.</a>
*/
@ -20,8 +21,8 @@
#include <boost/preprocessor/list/adt.hpp>
#include <boost/preprocessor/while.hpp>
//! Iterates F(D,P,X) for each element X of the list L (from the left or the start of the list).
/*!
/** Iterates F(D,P,X) for each element X of the list L (from the left or the start of the list).
In other words,
<PRE>\verbatim

View File

@ -1,26 +1,27 @@
#ifndef BOOST_PREPROCESSOR_LIST_FOLD_RIGHT_HPP
#define BOOST_PREPROCESSOR_LIST_FOLD_RIGHT_HPP
// Copyright (C) 2001
// Housemarque Oy
// http://www.housemarque.com
//
// Permission to copy, use, modify, sell and distribute this software is
// granted provided this copyright notice appears in all copies. This
// software is provided "as is" without express or implied warranty, and
// with no claim as to its suitability for any purpose.
/* Copyright (C) 2001
* Housemarque Oy
* http://www.housemarque.com
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* See http://www.boost.org for most recent version.
*/
// See http://www.boost.org for most recent version.
/*! \file
/** \file
<a href="../../../../boost/preprocessor/list/fold_right.hpp">Click here to see the header.</a>
*/
#include <boost/preprocessor/list/reverse.hpp>
//! Iterates F(D,X,P) for each element X of the list L (from the right or the end of the list).
/*!
/** Iterates F(D,X,P) for each element X of the list L (from the right or the end of the list).
In other words,
<PRE>\verbatim

View File

@ -1,18 +1,19 @@
#ifndef BOOST_PREPROCESSOR_LIST_FOR_EACH_HPP
#define BOOST_PREPROCESSOR_LIST_FOR_EACH_HPP
// Copyright (C) 2001
// Housemarque Oy
// http://www.housemarque.com
//
// Permission to copy, use, modify, sell and distribute this software is
// granted provided this copyright notice appears in all copies. This
// software is provided "as is" without express or implied warranty, and
// with no claim as to its suitability for any purpose.
/* Copyright (C) 2001
* Housemarque Oy
* http://www.housemarque.com
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* See http://www.boost.org for most recent version.
*/
// See http://www.boost.org for most recent version.
/*! \file
/** \file
<a href="../../../../boost/preprocessor/list/for_each.hpp">Click here to see the header.</a>
*/
@ -20,8 +21,8 @@
#include <boost/preprocessor/list/adt.hpp>
#include <boost/preprocessor/for.hpp>
//! Repeats F(R,P,BOOST_PP_LIST_AT(L,I)) for each I = [0,BOOST_PP_LIST_SIZE(L)[.
/*!
/** Repeats F(R,P,BOOST_PP_LIST_AT(L,I)) for each I = [0,BOOST_PP_LIST_SIZE(L)[.
In other words, expands to the sequence:
<PRE>\verbatim

View File

@ -1,18 +1,19 @@
#ifndef BOOST_PREPROCESSOR_LIST_REST_N_HPP
#define BOOST_PREPROCESSOR_LIST_REST_N_HPP
// Copyright (C) 2001
// Housemarque Oy
// http://www.housemarque.com
//
// Permission to copy, use, modify, sell and distribute this software is
// granted provided this copyright notice appears in all copies. This
// software is provided "as is" without express or implied warranty, and
// with no claim as to its suitability for any purpose.
/* Copyright (C) 2001
* Housemarque Oy
* http://www.housemarque.com
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* See http://www.boost.org for most recent version.
*/
// See http://www.boost.org for most recent version.
/*! \file
/** \file
<a href="../../../../boost/preprocessor/list/rest_n.hpp">Click here to see the header.</a>
*/
@ -21,8 +22,8 @@
#include <boost/preprocessor/list/adt.hpp>
#include <boost/preprocessor/while.hpp>
//! Expands to a list of all but the first N elements of the list.
/*!
/** Expands to a list of all but the first N elements of the list.
For example,
<PRE>\verbatim

View File

@ -1,26 +1,27 @@
#ifndef BOOST_PREPROCESSOR_LIST_REVERSE_HPP
#define BOOST_PREPROCESSOR_LIST_REVERSE_HPP
// Copyright (C) 2001
// Housemarque Oy
// http://www.housemarque.com
//
// Permission to copy, use, modify, sell and distribute this software is
// granted provided this copyright notice appears in all copies. This
// software is provided "as is" without express or implied warranty, and
// with no claim as to its suitability for any purpose.
/* Copyright (C) 2001
* Housemarque Oy
* http://www.housemarque.com
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* See http://www.boost.org for most recent version.
*/
// See http://www.boost.org for most recent version.
/*! \file
/** \file
<a href="../../../../boost/preprocessor/list/reverse.hpp">Click here to see the header.</a>
*/
#include <boost/preprocessor/list/fold_left.hpp>
//! List reversal.
/*!
/** List reversal.
For example,
<PRE>\verbatim

View File

@ -1,18 +1,19 @@
#ifndef BOOST_PREPROCESSOR_LIST_SIZE_HPP
#define BOOST_PREPROCESSOR_LIST_SIZE_HPP
// Copyright (C) 2001
// Housemarque Oy
// http://www.housemarque.com
//
// Permission to copy, use, modify, sell and distribute this software is
// granted provided this copyright notice appears in all copies. This
// software is provided "as is" without express or implied warranty, and
// with no claim as to its suitability for any purpose.
/* Copyright (C) 2001
* Housemarque Oy
* http://www.housemarque.com
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* See http://www.boost.org for most recent version.
*/
// See http://www.boost.org for most recent version.
/*! \file
/** \file
<a href="../../../../boost/preprocessor/list/size.hpp">Click here to see the header.</a>
*/
@ -20,8 +21,8 @@
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/inc.hpp>
//! Expands to the number of elements in the list.
/*!
/** Expands to the number of elements in the list.
For example,
<PRE>\verbatim

View File

@ -1,18 +1,19 @@
#ifndef BOOST_PREPROCESSOR_LIST_TO_TUPLE_HPP
#define BOOST_PREPROCESSOR_LIST_TO_TUPLE_HPP
// Copyright (C) 2001
// Housemarque Oy
// http://www.housemarque.com
//
// Permission to copy, use, modify, sell and distribute this software is
// granted provided this copyright notice appears in all copies. This
// software is provided "as is" without express or implied warranty, and
// with no claim as to its suitability for any purpose.
/* Copyright (C) 2001
* Housemarque Oy
* http://www.housemarque.com
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* See http://www.boost.org for most recent version.
*/
// See http://www.boost.org for most recent version.
/*! \file
/** \file
<a href="../../../../boost/preprocessor/list/to_tuple.hpp">Click here to see the header.</a>
*/
@ -20,8 +21,8 @@
#include <boost/preprocessor/comma_if.hpp>
#include <boost/preprocessor/list/enum.hpp>
//! Converts the list to a tuple.
/*!
/** Converts the list to a tuple.
For example,
<PRE>\verbatim

View File

@ -1,26 +1,27 @@
#ifndef BOOST_PREPROCESSOR_LIST_TRANSFORM_HPP
#define BOOST_PREPROCESSOR_LIST_TRANSFORM_HPP
// Copyright (C) 2001
// Housemarque Oy
// http://www.housemarque.com
//
// Permission to copy, use, modify, sell and distribute this software is
// granted provided this copyright notice appears in all copies. This
// software is provided "as is" without express or implied warranty, and
// with no claim as to its suitability for any purpose.
/* Copyright (C) 2001
* Housemarque Oy
* http://www.housemarque.com
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* See http://www.boost.org for most recent version.
*/
// See http://www.boost.org for most recent version.
/*! \file
/** \file
<a href="../../../../boost/preprocessor/list/transform.hpp">Click here to see the header.</a>
*/
#include <boost/preprocessor/list/fold_right.hpp>
//! Applies the macro F(D,P,X) to each element X of the list producing a new list.
/*!
/** Applies the macro F(D,P,X) to each element X of the list producing a new list.
In other words, BOOST_PP_LIST_TRANSFORM(F,P,L) expands to same as:
<PRE>\verbatim