diff options
Diffstat (limited to 'boost/numeric/odeint/util/same_instance.hpp')
-rw-r--r-- | boost/numeric/odeint/util/same_instance.hpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/boost/numeric/odeint/util/same_instance.hpp b/boost/numeric/odeint/util/same_instance.hpp new file mode 100644 index 0000000000..dc55db30a3 --- /dev/null +++ b/boost/numeric/odeint/util/same_instance.hpp @@ -0,0 +1,56 @@ +/* + [auto_generated] + boost/numeric/odeint/util/same_instance.hpp + + [begin_description] + Basic check if two variables are the same instance + [end_description] + + Copyright 2012 Karsten Ahnert + Copyright 2012 Mario Mulansky + + Distributed under the Boost Software License, Version 1.0. + (See accompanying file LICENSE_1_0.txt or + copy at http://www.boost.org/LICENSE_1_0.txt) + */ + + +#ifndef BOOST_NUMERIC_ODEINT_UTIL_SAME_INSTANCE_HPP_INCLUDED +#define BOOST_NUMERIC_ODEINT_UTIL_SAME_INSTANCE_HPP_INCLUDED + +namespace boost { +namespace numeric { +namespace odeint { + +template< class T1 , class T2 , class Enabler=void > +struct same_instance_impl +{ + static bool same_instance( const T1 &x1 , const T2 &x2 ) + { + return false; + } +}; + +template< class T > +struct same_instance_impl< T , T > +{ + static bool same_instance( const T &x1 , const T &x2 ) + { + // check pointers + return (&x1 == &x2); + } +}; + + +template< class T1 , class T2 > +bool same_instance( const T1 &x1 , const T2 &x2 ) +{ + return same_instance_impl< T1 , T2 >::same_instance( x1 , x2 ); +} + + +} // namespace odeint +} // namespace numeric +} // namespace boost + +#endif |