Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:53:38

0001 
0002 //  (C) Copyright Edward Diener 2011-2015
0003 //  Use, modification and distribution are subject to the Boost Software License,
0004 //  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
0005 //  http://www.boost.org/LICENSE_1_0.txt).
0006 
0007 #if !defined(BOOST_VMD_EQUAL_HPP)
0008 #define BOOST_VMD_EQUAL_HPP
0009 
0010 #include <boost/vmd/detail/setup.hpp>
0011 
0012 #if BOOST_PP_VARIADICS
0013 
0014 #include <boost/vmd/detail/equal.hpp>
0015 
0016 /*
0017 
0018   The succeeding comments in this file are in doxygen format.
0019 
0020 */
0021 
0022 /** \file
0023 */
0024 
0025 /** \def BOOST_VMD_EQUAL(sequence,...)
0026 
0027     \brief Tests any two sequences for equality.
0028 
0029     sequence     = First sequence. <br/>
0030     ...          = variadic parameters, maximum of 2.
0031     
0032     The first variadic parameter is required and is the second sequence to test.
0033     The optional second variadic parameter is a VMD type as a filter.
0034     
0035     The macro tests any two sequences for equality. For sequences to be equal the
0036     VMD types of each sequence must be equal and the individual elements of the
0037     sequence must be equal. For Boost PP composite types the macro tests that
0038     the composite types have the same size and then tests that each element
0039     of the composite type is equal. This means that all elements of a composite
0040     type must be a VMD type in order to use this macro successfully.
0041     
0042     The single optional parameter is a filter. The filter is a VMD type which specifies
0043     that both sequences to test must be of that VMD type, as well as being equal to
0044     each other, for the test to succeed.
0045     
0046     returns   = 1 upon success or 0 upon failure. Success means that both sequences are
0047                 equal and, if the optional parameter is specified, that the sequences are
0048                 of the optional VMD type.
0049     
0050 */
0051 
0052 #define BOOST_VMD_EQUAL(sequence,...) \
0053     BOOST_VMD_DETAIL_EQUAL(sequence,__VA_ARGS__) \
0054 /**/
0055 
0056 /** \def BOOST_VMD_EQUAL_D(d,sequence,...)
0057 
0058     \brief Tests any two sequences for equality. Re-entrant version.
0059 
0060     d            = The next available BOOST_PP_WHILE iteration. <br/>
0061     sequence     = First sequence. <br/>
0062     ...          = variadic parameters, maximum of 2.
0063     
0064     The first variadic parameter is required and is the second sequence to test.
0065     The optional second variadic parameter is a VMD type as a filter.
0066     
0067     The macro tests any two sequences for equality. For sequences to be equal the
0068     VMD types of each sequence must be equal and the individual elements of the
0069     sequence must be equal. For Boost PP composite types the macro tests that
0070     the composite types have the same size and then tests that each element
0071     of the composite type is equal. This means that all elements of a composite
0072     type must be a VMD type in order to use this macro successfully.
0073     
0074     The single optional parameter is a filter. The filter is a VMD type which specifies
0075     that both sequences to test must be of that VMD type, as well as being equal to
0076     each other, for the test to succeed.
0077     
0078     returns   = 1 upon success or 0 upon failure. Success means that both sequences are
0079                 equal and, if the optional parameter is specified, that the sequences are
0080                 of the optional VMD type.
0081     
0082 */
0083 
0084 #define BOOST_VMD_EQUAL_D(d,sequence,...) \
0085     BOOST_VMD_DETAIL_EQUAL_D(d,sequence,__VA_ARGS__) \
0086 /**/
0087 
0088 #endif /* BOOST_PP_VARIADICS */
0089 #endif /* BOOST_VMD_EQUAL_HPP */