|
||||
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 */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |