is_integral.cpp
来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 50 行
CPP
50 行
# /* Copyright (C) 2002# * Housemarque Oy# * http://www.housemarque.com# *# * Distributed under 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)# */## /* Revised by Paul Mensonides (2002) */## /* See http://www.boost.org for most recent version. */## /* This example demonstrates the usage of preprocessor lists for generating C++ code. */## include <boost/preprocessor/facilities/empty.hpp># include <boost/preprocessor/list/at.hpp># include <boost/preprocessor/list/for_each_product.hpp># include <boost/preprocessor/tuple/elem.hpp># include <boost/preprocessor/tuple/to_list.hpp>## /* List of integral types. (Strictly speaking, wchar_t should be on the list.) */# define INTEGRAL_TYPES \ BOOST_PP_TUPLE_TO_LIST( \ 9, (char, signed char, unsigned char, short, unsigned short, int, unsigned, long, unsigned long) \ ) \ /**/## /* List of invokeable cv-qualifiers */# define CV_QUALIFIERS \ BOOST_PP_TUPLE_TO_LIST( \ 4, (BOOST_PP_EMPTY, const BOOST_PP_EMPTY, volatile BOOST_PP_EMPTY, const volatile BOOST_PP_EMPTY) \ ) \ /**/## /* Template for testing whether a type is an integral type. */template<class T> struct is_integral { enum { value = false };};# /* Macro for defining a specialization of is_integral<> template. */# define IS_INTEGRAL_SPECIALIZATION(R, L) \ template<> struct is_integral<BOOST_PP_TUPLE_ELEM(2, 0, L)() BOOST_PP_TUPLE_ELEM(2, 1, L)> { \ enum { value = true }; \ }; \ /**/BOOST_PP_LIST_FOR_EACH_PRODUCT(IS_INTEGRAL_SPECIALIZATION, 2, (CV_QUALIFIERS, INTEGRAL_TYPES))
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?