Chris@16: /* Chris@16: [auto_generated] Chris@16: boost/numeric/odeint/util/same_instance.hpp Chris@16: Chris@16: [begin_description] Chris@16: Basic check if two variables are the same instance Chris@16: [end_description] Chris@16: Chris@101: Copyright 2012 Karsten Ahnert Chris@101: Copyright 2012 Mario Mulansky Chris@16: Chris@16: Distributed under the Boost Software License, Version 1.0. Chris@16: (See accompanying file LICENSE_1_0.txt or Chris@16: copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: */ Chris@16: Chris@16: Chris@16: #ifndef BOOST_NUMERIC_ODEINT_UTIL_SAME_INSTANCE_HPP_INCLUDED Chris@16: #define BOOST_NUMERIC_ODEINT_UTIL_SAME_INSTANCE_HPP_INCLUDED Chris@16: Chris@16: namespace boost { Chris@16: namespace numeric { Chris@16: namespace odeint { Chris@16: Chris@16: template< class T1 , class T2 , class Enabler=void > Chris@16: struct same_instance_impl Chris@16: { Chris@101: static bool same_instance( const T1& /* x1 */ , const T2& /* x2 */ ) Chris@16: { Chris@16: return false; Chris@16: } Chris@16: }; Chris@16: Chris@16: template< class T > Chris@16: struct same_instance_impl< T , T > Chris@16: { Chris@16: static bool same_instance( const T &x1 , const T &x2 ) Chris@16: { Chris@16: // check pointers Chris@16: return (&x1 == &x2); Chris@16: } Chris@16: }; Chris@16: Chris@16: Chris@16: template< class T1 , class T2 > Chris@16: bool same_instance( const T1 &x1 , const T2 &x2 ) Chris@16: { Chris@16: return same_instance_impl< T1 , T2 >::same_instance( x1 , x2 ); Chris@16: } Chris@16: Chris@16: Chris@16: } // namespace odeint Chris@16: } // namespace numeric Chris@16: } // namespace boost Chris@16: Chris@16: #endif