sequence_not_equal_to.hpp

来自「CGAL is a collaborative effort of severa」· HPP 代码 · 共 53 行

HPP
53
字号
/*=============================================================================    Copyright (c) 1999-2003 Jaakko J鋜vi    Copyright (c) 2001-2003 Joel de Guzman    Use, modification and distribution is subject to the Boost Software    License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at    http://www.boost.org/LICENSE_1_0.txt)==============================================================================*/#if !defined(FUSION_SEQUENCE_DETAIL_SEQUENCE_NOT_EQUAL_TO_HPP)#define FUSION_SEQUENCE_DETAIL_SEQUENCE_NOT_EQUAL_TO_HPP#include <boost/mpl/bool.hpp>#include <boost/static_assert.hpp>#include <boost/spirit/fusion/iterator/deref.hpp>#include <boost/spirit/fusion/iterator/next.hpp>#include <boost/spirit/fusion/iterator/equal_to.hpp>namespace boost { namespace fusion { namespace detail{    template <typename Seq1, typename Seq2>    struct sequence_not_equal_to    {        typedef typename meta::end<Seq1>::type end1_type;        typedef typename meta::end<Seq2>::type end2_type;        template <typename I1, typename I2>        static bool        call(I1 const&, I2 const&, mpl::true_)        {            BOOST_STATIC_ASSERT((meta::equal_to<I2, end2_type>::value));            return false;        }        template <typename I1, typename I2>        static bool        call(I1 const& a, I2 const& b, mpl::false_)        {            return *a != *b                || call(fusion::next(a), fusion::next(b));        }        template <typename I1, typename I2>        static bool        call(I1 const& a, I2 const& b)        {            typename meta::equal_to<I1, end1_type>::type eq;            return call(a, b, eq);        }    };}}}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?