Chris@16: # /* ************************************************************************** Chris@16: # * * Chris@16: # * (C) Copyright Paul Mensonides 2003. Chris@101: # * (C) Copyright Edward Diener 2014. Chris@16: # * Distributed under the Boost Software License, Version 1.0. (See Chris@16: # * accompanying file LICENSE_1_0.txt or copy at Chris@16: # * http://www.boost.org/LICENSE_1_0.txt) Chris@16: # * * Chris@16: # ************************************************************************** */ Chris@16: # Chris@16: # /* See http://www.boost.org for most recent version. */ Chris@16: # Chris@16: # ifndef BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP Chris@16: # define BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP Chris@16: # Chris@16: # include Chris@101: # Chris@101: # if BOOST_PP_VARIADICS Chris@101: # Chris@101: # include Chris@101: # Chris@101: # else Chris@101: # Chris@101: # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() Chris@101: # include Chris@101: # include Chris@101: # else Chris@16: # include Chris@16: # include Chris@101: # endif Chris@16: # Chris@16: # /* BOOST_PP_IS_EMPTY */ Chris@16: # Chris@16: # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() Chris@16: # define BOOST_PP_IS_EMPTY(x) BOOST_PP_IS_EMPTY_I(x BOOST_PP_IS_EMPTY_HELPER) Chris@16: # define BOOST_PP_IS_EMPTY_I(contents) BOOST_PP_TUPLE_ELEM(2, 1, (BOOST_PP_IS_EMPTY_DEF_ ## contents())) Chris@101: # define BOOST_PP_IS_EMPTY_DEF_BOOST_PP_IS_EMPTY_HELPER 1, BOOST_PP_IDENTITY(1) Chris@16: # define BOOST_PP_IS_EMPTY_HELPER() , 0 Chris@16: # else Chris@16: # if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() Chris@16: # define BOOST_PP_IS_EMPTY(x) BOOST_PP_IS_EMPTY_I(BOOST_PP_IS_EMPTY_HELPER x ()) Chris@16: # define BOOST_PP_IS_EMPTY_I(test) BOOST_PP_IS_EMPTY_II(BOOST_PP_SPLIT(0, BOOST_PP_CAT(BOOST_PP_IS_EMPTY_DEF_, test))) Chris@16: # define BOOST_PP_IS_EMPTY_II(id) id Chris@16: # else Chris@16: # define BOOST_PP_IS_EMPTY(x) BOOST_PP_IS_EMPTY_I((BOOST_PP_IS_EMPTY_HELPER x ())) Chris@16: # define BOOST_PP_IS_EMPTY_I(par) BOOST_PP_IS_EMPTY_II ## par Chris@16: # define BOOST_PP_IS_EMPTY_II(test) BOOST_PP_SPLIT(0, BOOST_PP_CAT(BOOST_PP_IS_EMPTY_DEF_, test)) Chris@16: # endif Chris@16: # define BOOST_PP_IS_EMPTY_HELPER() 1 Chris@16: # define BOOST_PP_IS_EMPTY_DEF_1 1, BOOST_PP_NIL Chris@16: # define BOOST_PP_IS_EMPTY_DEF_BOOST_PP_IS_EMPTY_HELPER 0, BOOST_PP_NIL Chris@16: # endif Chris@16: # Chris@101: # endif /* BOOST_PP_VARIADICS */ Chris@101: # Chris@101: # endif /* BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP */