Chris@16: /*-----------------------------------------------------------------------------+ Chris@16: Copyright (c) 2008-2009: Joachim Faulhaber Chris@16: +------------------------------------------------------------------------------+ Chris@16: Distributed under the Boost Software License, Version 1.0. Chris@16: (See accompanying file LICENCE.txt or copy at Chris@16: http://www.boost.org/LICENSE_1_0.txt) Chris@16: +-----------------------------------------------------------------------------*/ Chris@16: Chris@16: /*------------------------------------------------------------------------------ Chris@16: itl_rational provides adapter code for boost::rational. Chris@16: ------------------------------------------------------------------------------*/ Chris@16: Chris@16: #ifndef BOOST_ICL_RATIONAL_HPP_JOFA_080913 Chris@16: #define BOOST_ICL_RATIONAL_HPP_JOFA_080913 Chris@16: Chris@16: #include // For BOOST_MSVC and more Chris@16: Chris@16: #ifdef BOOST_MSVC Chris@16: #pragma warning(push) Chris@16: #pragma warning(disable:4127) // conditional expression is constant Chris@16: #pragma warning(disable:4512) // 'boost::detail::resetter' : assignment operator could not be generated Chris@16: #pragma warning(disable:4800) // 'unsigned int' : forcing value to bool 'true' or 'false' (performance warning) Chris@16: #endif Chris@16: Chris@16: #include Chris@16: Chris@16: #ifdef BOOST_MSVC Chris@16: #pragma warning(pop) Chris@16: #endif Chris@16: Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: Chris@16: namespace boost{namespace icl Chris@16: { Chris@16: template Chris@16: struct is_numeric > Chris@16: { Chris@16: typedef is_numeric type; Chris@16: BOOST_STATIC_CONSTANT(bool, value = true); Chris@16: }; Chris@16: Chris@16: template Chris@16: struct is_continuous > Chris@16: { Chris@16: typedef is_continuous type; Chris@16: BOOST_STATIC_CONSTANT(bool, value = true); Chris@16: }; Chris@16: Chris@16: template Chris@16: struct is_discrete > Chris@16: { Chris@16: typedef is_discrete type; Chris@16: BOOST_STATIC_CONSTANT(bool, value = false); Chris@16: }; Chris@16: Chris@16: template Chris@16: struct has_inverse > Chris@16: { Chris@16: typedef has_inverse type; Chris@16: BOOST_STATIC_CONSTANT(bool, value = (boost::is_signed::value)); Chris@16: }; Chris@16: Chris@16: }} // namespace icl boost Chris@16: Chris@16: Chris@16: #endif Chris@16: Chris@16: