10 #ifndef BOOST_UTILITY_BASE_FROM_MEMBER_HPP
11 #define BOOST_UTILITY_BASE_FROM_MEMBER_HPP
36 #ifndef BOOST_BASE_FROM_MEMBER_MAX_ARITY
37 #define BOOST_BASE_FROM_MEMBER_MAX_ARITY 10
50 #define BOOST_PRIVATE_CTR_DEF( z, n, data ) \
51 template < BOOST_PP_ENUM_PARAMS(n, typename T) > \
52 base_from_member( BOOST_PP_ENUM_BINARY_PARAMS(n, T, x) ) \
53 : member( BOOST_PP_ENUM_PARAMS(n, x) ) \
72 template <
typename T >
75 typedef typename ::boost::remove_cv<typename
86 template <
typename T,
typename U >
89 typename ::boost::detail::remove_cv_ref<T>::type,
90 typename ::boost::detail::remove_cv_ref<U>::type >
99 #ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES
100 template<
typename ...T>
105 template<
typename T,
typename U,
typename ...U2>
123 template <
typename MemberType,
int UniqueID = 0 >
129 #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && \
130 !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && \
131 !defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && \
132 !(defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 4))
133 template <
typename ...T,
typename EnableIf = typename
137 static_cast<T&&
>(x)... )) )
138 :
member( static_cast<
T&&>(x)... )
152 template <
typename MemberType,
int UniqueID >
169 #undef BOOST_PRIVATE_CTR_DEF
172 #endif // BOOST_UTILITY_BASE_FROM_MEMBER_HPP