3 boost/numeric/odeint/algebra/detail/macros.hpp
6 Some macros for type checking.
9 Copyright 2010-2012 Karsten Ahnert
10 Copyright 2010 Mario Mulansky
12 Distributed under the Boost Software License, Version 1.0.
13 (See accompanying file LICENSE_1_0.txt or
14 copy at http://www.boost.org/LICENSE_1_0.txt)
18 #ifndef BOOST_NUMERIC_ODEINT_ALGEBRA_DETAIL_MACROS_HPP_INCLUDED
19 #define BOOST_NUMERIC_ODEINT_ALGEBRA_DETAIL_MACROS_HPP_INCLUDED
22 //type traits aren't working with nvcc
24 #include <boost/type_traits.hpp>
25 #include <boost/static_assert.hpp>
27 #define BOOST_ODEINT_CHECK_CONTAINER_TYPE( Type1 , Type2 ) \
28 BOOST_STATIC_ASSERT(( boost::is_same< typename boost::remove_const< Type1 >::type , Type2 >::value ))
31 //empty macro for nvcc
32 #define BOOST_ODEINT_CHECK_CONTAINER_TYPE( Type1 , Type2 )
39 #define BOOST_ODEINT_CHECK_OPERATION_ARITY( Operation , Arity ) \
40 BOOST_STATIC_ASSERT(( boost::function_traits< Operation >::arity == Arity ))
43 #endif // BOOST_NUMERIC_ODEINT_ALGEBRA_DETAIL_MACROS_HPP_INCLUDED