mirror of
https://github.com/boostorg/typeof.git
synced 2025-07-30 04:47:27 +02:00
BOOST_PP_EMPTY usage
[SVN r32468]
This commit is contained in:
@ -6,6 +6,7 @@
|
||||
#define BOOST_TYPEOF_MODIFIERS_HPP_INCLUDED
|
||||
|
||||
#include <boost/typeof/encode_decode.hpp>
|
||||
#include <boost/preprocessor/facilities/identity.hpp>
|
||||
|
||||
#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
|
||||
|
||||
@ -56,7 +57,7 @@ namespace boost { namespace type_of { namespace {
|
||||
|
||||
#define BOOST_TYPEOF_array_support(ID, Qualifier)\
|
||||
template<class V, class T, int N>\
|
||||
struct encode_type_impl<V, Qualifier T[N]>\
|
||||
struct encode_type_impl<V, Qualifier() T[N]>\
|
||||
{\
|
||||
typedef\
|
||||
typename encode_type<\
|
||||
@ -73,16 +74,16 @@ namespace boost { namespace type_of { namespace {
|
||||
{\
|
||||
enum{n = Iter::type::value};\
|
||||
typedef decode_type<typename Iter::next> d;\
|
||||
typedef typename d::type Qualifier type[n];\
|
||||
typedef typename d::type Qualifier() type[n];\
|
||||
typedef typename d::iter iter;\
|
||||
}
|
||||
|
||||
namespace boost { namespace type_of { namespace {
|
||||
|
||||
BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_EMPTY());
|
||||
BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), const);
|
||||
BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), volatile);
|
||||
BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), volatile const);
|
||||
BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_EMPTY);
|
||||
BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_IDENTITY(const));
|
||||
BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_IDENTITY(volatile));
|
||||
BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_IDENTITY(volatile const));
|
||||
|
||||
}}}
|
||||
|
||||
|
@ -69,7 +69,8 @@
|
||||
# include <boost/preprocessor/dec.hpp>
|
||||
# include <boost/preprocessor/comma_if.hpp>
|
||||
# include <boost/preprocessor/iteration/local.hpp>
|
||||
# include <boost/preprocessor/control/if.hpp>
|
||||
# include <boost/preprocessor/control/expr_iif.hpp>
|
||||
# include <boost/preprocessor/logical/not.hpp>
|
||||
|
||||
// iterator
|
||||
|
||||
@ -103,7 +104,7 @@ namespace boost { namespace type_of {
|
||||
typedef mpl::int_<1> item ## n;
|
||||
|
||||
# define BOOST_TYPEOF_define_vector(n)\
|
||||
template<BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_IF(n, BOOST_PP_EMPTY(), class T = void)>\
|
||||
template<BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_EXPR_IIF(BOOST_PP_NOT(n), class T = void)>\
|
||||
struct vector ## n\
|
||||
{\
|
||||
typedef v_iter<vector ## n, boost::mpl::int_<0> > begin;\
|
||||
|
Reference in New Issue
Block a user