pow2_explode.hpp

来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 119 行

HPP
119
字号
/*=============================================================================    Copyright (c) 2006-2007 Tobias Schwinger      Use modification and distribution are 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(BOOST_PP_IS_ITERATING)#   error "This file has to be included by a preprocessor loop construct!"#elif BOOST_PP_ITERATION_DEPTH() == 1#   if !defined(BOOST_FUSION_FUNCTIONAL_ADAPTER_DETAIL_POW2_EXPLODE_HPP_INCLUDED)#       include <boost/preprocessor/config/limits.hpp>#       include <boost/preprocessor/slot/slot.hpp>#       include <boost/preprocessor/arithmetic/dec.hpp>#       define BOOST_FUSION_FUNCTIONAL_ADAPTER_DETAIL_POW2_EXPLODE_HPP_INCLUDED#   endif#   define  BOOST_PP_VALUE 0#   include BOOST_PP_ASSIGN_SLOT(1)#   define  BOOST_PP_FILENAME_2 \        <boost/fusion/functional/adapter/detail/pow2_explode.hpp>#   define  BOOST_PP_VALUE (1 << N) >> 4 #   if BOOST_PP_VALUE > BOOST_PP_LIMIT_ITERATION#       error "Preprocessor limit exceeded."#   endif#   include BOOST_PP_ASSIGN_SLOT(2)#   define  BOOST_PP_ITERATION_LIMITS (0,BOOST_PP_DEC(BOOST_PP_SLOT_2()))#   include BOOST_PP_ITERATE()#elif BOOST_PP_ITERATION_DEPTH() == 2#   if BOOST_PP_SLOT_1() < 1 << N#   include BOOST_PP_INDIRECT_SELF#   define  BOOST_PP_VALUE BOOST_PP_SLOT_1() + 1#   include BOOST_PP_ASSIGN_SLOT(1)#   if BOOST_PP_SLOT_1() < 1 << N#   include BOOST_PP_INDIRECT_SELF#   define  BOOST_PP_VALUE BOOST_PP_SLOT_1() + 1#   include BOOST_PP_ASSIGN_SLOT(1)#   if BOOST_PP_SLOT_1() < 1 << N#   include BOOST_PP_INDIRECT_SELF#   define  BOOST_PP_VALUE BOOST_PP_SLOT_1() + 1#   include BOOST_PP_ASSIGN_SLOT(1)#   if BOOST_PP_SLOT_1() < 1 << N#   include BOOST_PP_INDIRECT_SELF#   define  BOOST_PP_VALUE BOOST_PP_SLOT_1() + 1#   include BOOST_PP_ASSIGN_SLOT(1)#   if BOOST_PP_SLOT_1() < 1 << N#   include BOOST_PP_INDIRECT_SELF#   define  BOOST_PP_VALUE BOOST_PP_SLOT_1() + 1#   include BOOST_PP_ASSIGN_SLOT(1)#   if BOOST_PP_SLOT_1() < 1 << N#   include BOOST_PP_INDIRECT_SELF#   define  BOOST_PP_VALUE BOOST_PP_SLOT_1() + 1#   include BOOST_PP_ASSIGN_SLOT(1)#   if BOOST_PP_SLOT_1() < 1 << N#   include BOOST_PP_INDIRECT_SELF#   define  BOOST_PP_VALUE BOOST_PP_SLOT_1() + 1#   include BOOST_PP_ASSIGN_SLOT(1)#   if BOOST_PP_SLOT_1() < 1 << N#   include BOOST_PP_INDIRECT_SELF#   define  BOOST_PP_VALUE BOOST_PP_SLOT_1() + 1#   include BOOST_PP_ASSIGN_SLOT(1)#   if BOOST_PP_SLOT_1() < 1 << N#   include BOOST_PP_INDIRECT_SELF#   define  BOOST_PP_VALUE BOOST_PP_SLOT_1() + 1#   include BOOST_PP_ASSIGN_SLOT(1)#   if BOOST_PP_SLOT_1() < 1 << N#   include BOOST_PP_INDIRECT_SELF#   define  BOOST_PP_VALUE BOOST_PP_SLOT_1() + 1#   include BOOST_PP_ASSIGN_SLOT(1)#   if BOOST_PP_SLOT_1() < 1 << N#   include BOOST_PP_INDIRECT_SELF#   define  BOOST_PP_VALUE BOOST_PP_SLOT_1() + 1#   include BOOST_PP_ASSIGN_SLOT(1)#   if BOOST_PP_SLOT_1() < 1 << N#   include BOOST_PP_INDIRECT_SELF#   define  BOOST_PP_VALUE BOOST_PP_SLOT_1() + 1#   include BOOST_PP_ASSIGN_SLOT(1)#   if BOOST_PP_SLOT_1() < 1 << N#   include BOOST_PP_INDIRECT_SELF#   define  BOOST_PP_VALUE BOOST_PP_SLOT_1() + 1#   include BOOST_PP_ASSIGN_SLOT(1)#   if BOOST_PP_SLOT_1() < 1 << N#   include BOOST_PP_INDIRECT_SELF#   define  BOOST_PP_VALUE BOOST_PP_SLOT_1() + 1#   include BOOST_PP_ASSIGN_SLOT(1)#   if BOOST_PP_SLOT_1() < 1 << N#   include BOOST_PP_INDIRECT_SELF#   define  BOOST_PP_VALUE BOOST_PP_SLOT_1() + 1#   include BOOST_PP_ASSIGN_SLOT(1)#   if BOOST_PP_SLOT_1() < 1 << N#   include BOOST_PP_INDIRECT_SELF#   define  BOOST_PP_VALUE BOOST_PP_SLOT_1() + 1#   include BOOST_PP_ASSIGN_SLOT(1)#   endif#   endif#   endif#   endif#   endif#   endif#   endif#   endif#   endif#   endif#   endif#   endif#   endif#   endif#   endif#   endif#endif

⌨️ 快捷键说明

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