mirror of
https://github.com/mat007/turtle.git
synced 2026-06-22 12:13:43 +00:00
Refactoring
git-svn-id: https://svn.code.sf.net/p/turtle/code/trunk@123 860be788-9bd5-4423-9f1e-828f051e677b
This commit is contained in:
parent
058397d415
commit
8a2030ce5f
3 changed files with 12 additions and 14 deletions
|
|
@ -21,14 +21,12 @@ namespace detail
|
||||||
typedef boost::type_traits::yes_type yes_type;
|
typedef boost::type_traits::yes_type yes_type;
|
||||||
typedef boost::type_traits::no_type no_type;
|
typedef boost::type_traits::no_type no_type;
|
||||||
|
|
||||||
#define MOCK_IS_FUNCTION_HELPER(name, check) \
|
#define MOCK_IS_FUNCTION_HELPER(N, M) \
|
||||||
template< typename T > yes_type& name##_helper( T*, BOOST_DEDUCED_TYPENAME T::check* = 0 ); \
|
template< typename T > yes_type& N##_helper( BOOST_DEDUCED_TYPENAME T::M* ); \
|
||||||
template< typename T > no_type& name##_helper( T, ... ); \
|
template< typename T > no_type& N##_helper( ... ); \
|
||||||
template< typename T > struct name \
|
template< typename T > struct N \
|
||||||
{ \
|
: boost::mpl::bool_< sizeof( N##_helper< T >( 0 ) ) == sizeof( yes_type ) > \
|
||||||
static T* t; \
|
{};
|
||||||
enum { value = sizeof( name##_helper( t ) ) == sizeof( yes_type ) }; \
|
|
||||||
};
|
|
||||||
|
|
||||||
MOCK_IS_FUNCTION_HELPER( has_result_type, result_type )
|
MOCK_IS_FUNCTION_HELPER( has_result_type, result_type )
|
||||||
MOCK_IS_FUNCTION_HELPER( has_sig, BOOST_NESTED_TEMPLATE sig< void > )
|
MOCK_IS_FUNCTION_HELPER( has_sig, BOOST_NESTED_TEMPLATE sig< void > )
|
||||||
|
|
@ -40,10 +38,10 @@ namespace detail
|
||||||
struct is_functor
|
struct is_functor
|
||||||
{
|
{
|
||||||
typedef BOOST_DEDUCED_TYPENAME boost::mpl::or_<
|
typedef BOOST_DEDUCED_TYPENAME boost::mpl::or_<
|
||||||
BOOST_DEDUCED_TYPENAME boost::function_types::is_callable_builtin< T >::type,
|
boost::function_types::is_callable_builtin< T >,
|
||||||
BOOST_DEDUCED_TYPENAME boost::integral_constant< bool, has_result_type< T >::value >::type,
|
has_result_type< T >,
|
||||||
BOOST_DEDUCED_TYPENAME boost::integral_constant< bool, has_result< T >::value >::type,
|
has_result< T >,
|
||||||
BOOST_DEDUCED_TYPENAME boost::integral_constant< bool, has_sig< T >::value >::type
|
has_sig< T >
|
||||||
>::type type;
|
>::type type;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,7 @@ namespace detail
|
||||||
typedef BOOST_DEDUCED_TYPENAME \
|
typedef BOOST_DEDUCED_TYPENAME \
|
||||||
boost::mpl::at_c< \
|
boost::mpl::at_c< \
|
||||||
BOOST_DEDUCED_TYPENAME \
|
BOOST_DEDUCED_TYPENAME \
|
||||||
boost::function_types::parameter_types< Signature >::type, \
|
boost::function_types::parameter_types< Signature >, \
|
||||||
n \
|
n \
|
||||||
>::type arg##n##_type; \
|
>::type arg##n##_type; \
|
||||||
typedef detail::check< arg##n##_type > constraint##n##_type;
|
typedef detail::check< arg##n##_type > constraint##n##_type;
|
||||||
|
|
|
||||||
|
|
@ -164,7 +164,7 @@ namespace detail
|
||||||
typedef BOOST_DEDUCED_TYPENAME
|
typedef BOOST_DEDUCED_TYPENAME
|
||||||
boost::mpl::at_c<
|
boost::mpl::at_c<
|
||||||
BOOST_DEDUCED_TYPENAME
|
BOOST_DEDUCED_TYPENAME
|
||||||
boost::function_types::parameter_types< S >::type,
|
boost::function_types::parameter_types< S >,
|
||||||
n - 1
|
n - 1
|
||||||
>::type type;
|
>::type type;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue