forked from boostorg/core
Moved is_same implementation to detail (both directory and namespace) to use in the public headers and avoid introducing new dependencies. The documentation now recommends users to use Boost.TypeTraits or C++ standard library instead. Also, removed unnecessary includes and added missing ones in a few places.
31 lines
724 B
C++
31 lines
724 B
C++
/*
|
|
Copyright 2020 Glen Joseph Fernandes
|
|
(glenjofe@gmail.com)
|
|
|
|
Distributed under the Boost Software License, Version 1.0.
|
|
(http://www.boost.org/LICENSE_1_0.txt)
|
|
*/
|
|
#include <boost/core/allocator_access.hpp>
|
|
#include <boost/core/lightweight_test_trait.hpp>
|
|
#include <boost/core/detail/is_same.hpp>
|
|
|
|
template<class T>
|
|
struct A1 {
|
|
typedef T value_type;
|
|
typedef int* pointer;
|
|
};
|
|
|
|
template<class T>
|
|
struct A2 {
|
|
typedef T value_type;
|
|
};
|
|
|
|
int main()
|
|
{
|
|
BOOST_TEST_TRAIT_TRUE((boost::core::detail::is_same<int*,
|
|
boost::allocator_pointer<A1<char> >::type>));
|
|
BOOST_TEST_TRAIT_TRUE((boost::core::detail::is_same<int*,
|
|
boost::allocator_pointer<A2<int> >::type>));
|
|
return boost::report_errors();
|
|
}
|