70 lines
1.1 KiB
Plaintext
70 lines
1.1 KiB
Plaintext
[/
|
|
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]
|