blob: 657c59165982beb16a68567c608766f7d54ab706 [file] [log] [blame]
[/
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]