1 # /* ************************************************************************** 2 # * * 3 # * (C) Copyright Paul Mensonides 2002. 4 # * Distributed under the Boost Software License, Version 1.0. (See 5 # * accompanying file LICENSE_1_0.txt or copy at 6 # * http://www.boost.org/LICENSE_1_0.txt) 7 # * * 8 # ************************************************************************** */ 9 # 10 # /* See http://www.boost.org for most recent version. */ 11 # 12 # ifndef BOOST_PREPROCESSOR_CONTROL_IIF_HPP 13 # define BOOST_PREPROCESSOR_CONTROL_IIF_HPP 14 # 15 # include <boost/preprocessor/config/config.hpp> 16 # 17 # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() 18 # define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_I(bit, t, f) 19 # else 20 # define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_OO((bit, t, f)) 21 # define BOOST_PP_IIF_OO(par) BOOST_PP_IIF_I ## par 22 # endif 23 # 24 # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() 25 # define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_ ## bit(t, f) 26 # else 27 # define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_II(BOOST_PP_IIF_ ## bit(t, f)) 28 # define BOOST_PP_IIF_II(id) id 29 # endif 30 # 31 # define BOOST_PP_IIF_0(t, f) f 32 # define BOOST_PP_IIF_1(t, f) t 33 # 34 # endif 35