[/
  Copyright 2014 Peter Dimov

  Distributed under the Boost Software License, Version 1.0.

  See accompanying file LICENSE_1_0.txt
  or copy at http://boost.org/LICENSE_1_0.txt
]

[section:is_same is_same]

[simplesect Authors]

* Peter Dimov

[endsimplesect]

[section Header <boost/core/is_same.hpp>]

The header `<boost/core/is_same.hpp>` defines the class template
`boost::core::is_same<T1,T2>`. It defines a nested integral constant
`value` which is `true` when `T1` and `T2` are the same type, and
`false` when they are not.

In tandem with `BOOST_TEST_TRAIT_TRUE` and `BOOST_TEST_TRAIT_FALSE`,
`is_same` is useful for writing tests for traits classes that have
to define specific nested types.

[section Synopsis]

``
namespace boost
{

namespace core
{
    template<class T1, class T2> struct is_same;
}

}
``

[endsect]

[section Example]

``
#include <boost/core/lightweight_test_trait.hpp>
#include <boost/core/is_same.hpp>

template<class T> struct X
{
    typedef T& type;
};

using boost::core::is_same;

int main()
{
    BOOST_TEST_TRAIT_TRUE(( is_same<X<int>::type, int&> ));
    return boost::report_errors();
}
``

[endsect]

[endsect]

[endsect]
