| Home | Libraries | People | FAQ | More

## is_same

### Authors

- Peter Dimov

### 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.

#### Synopsis

    namespace boost
    {

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

    }

#### 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();
    }