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_NOT_EQUAL_HPP)
0008 #define BOOST_VMD_NOT_EQUAL_HPP
0009 
0010 #include <boost/vmd/detail/setup.hpp>
0011 
0012 #if BOOST_PP_VARIADICS
0013 
0014 #include <boost/preprocessor/logical/compl.hpp>
0015 #include <boost/vmd/equal.hpp>
0016 
0017 /*
0018 
0019   The succeeding comments in this file are in doxygen format.
0020 
0021 */
0022 
0023 /** \file
0024 */
0025 
0026 /** \def BOOST_VMD_NOT_EQUAL(sequence,...)
0027 
0028     \brief Tests any two sequences for inequality.
0029 
0030     sequence     = First sequence. <br/>
0031     ...          = variadic parameters, maximum of 2.
0032     
0033     The first variadic parameter is required and is the second sequence to test.
0034     The optional second variadic parameter is a VMD type as a filter.
0035     
0036     The macro tests any two sequences for inequality. For sequences to be unequal 
0037     either the VMD types of each sequence must be unequal or the individual elements of the
0038     sequence must be unequal. 
0039     
0040     The single optional parameter is a filter. The filter is a VMD type which specifies
0041     that both sequences to test must be of that VMD type, as well as being equal to
0042     each other, for the test to fail, else it succeeds.
0043     
0044     returns   = 1 upon success or 0 upon failure. Success means that the sequences are
0045                 unequal or, if the optional parameter is specified, that the sequences are
0046                 not of the optional VMD type; otherwise 0 is returned if the sequences
0047                 are equal.
0048                 
0049     The macro is implemented as the complement of BOOST_VMD_EQUAL, so that whenever
0050     BOOST_VMD_EQUAL would return 1 the macro returns 0 and whenever BOOST_VMD_EQUAL
0051     would return 0 the macro would return 1.
0052     
0053 */
0054 
0055 #define BOOST_VMD_NOT_EQUAL(sequence,...) \
0056     BOOST_PP_COMPL(BOOST_VMD_EQUAL(sequence,__VA_ARGS__)) \
0057 /**/
0058 
0059 /** \def BOOST_VMD_NOT_EQUAL_D(d,sequence,...)
0060 
0061     \brief Tests any two sequences for inequality. Re-entrant version.
0062 
0063     d         = The next available BOOST_PP_WHILE iteration. <br/>
0064     sequence  = First sequence. <br/>
0065     ...       = variadic parameters, maximum of 2.
0066     
0067     The first variadic parameter is required and is the second sequence to test.
0068     The optional second variadic parameter is a VMD type as a filter.
0069     
0070     The macro tests any two sequences for inequality. For sequences to be unequal 
0071     either the VMD types of each sequence must be unequal or the individual elements of the
0072     sequence must be unequal. 
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 fail, else it succeeds.
0077     
0078     returns   = 1 upon success or 0 upon failure. Success means that the sequences are
0079                 unequal or, if the optional parameter is specified, that the sequences are
0080                 not of the optional VMD type; otherwise 0 is returned if the sequences
0081                 are equal.
0082                 
0083     The macro is implemented as the complement of BOOST_VMD_EQUAL, so that whenever
0084     BOOST_VMD_EQUAL would return 1 the macro returns 0 and whenever BOOST_VMD_EQUAL
0085     would return 0 the macro would return 1.
0086     
0087 */
0088 
0089 #define BOOST_VMD_NOT_EQUAL_D(d,sequence,...) \
0090     BOOST_PP_COMPL(BOOST_VMD_EQUAL_D(d,sequence,__VA_ARGS__)) \
0091 /**/
0092 
0093 #endif /* BOOST_PP_VARIADICS */
0094 #endif /* BOOST_VMD_NOT_EQUAL_HPP */