...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
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.
namespace boost { namespace core { template<class T1, class T2> struct is_same; } }
#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(); }