]>
Commit | Line | Data |
---|---|---|
20effc67 TL |
1 | /* |
2 | Copyright 2020 Glen Joseph Fernandes | |
3 | (glenjofe@gmail.com) | |
4 | ||
5 | Distributed under the Boost Software License, Version 1.0. | |
6 | (http://www.boost.org/LICENSE_1_0.txt) | |
7 | */ | |
8 | #include <boost/core/allocator_access.hpp> | |
9 | #include <boost/core/is_same.hpp> | |
10 | #include <boost/core/lightweight_test_trait.hpp> | |
11 | ||
12 | template<class T> | |
13 | struct A1 { | |
14 | typedef T value_type; | |
15 | typedef int* const_pointer; | |
16 | typedef int* const_void_pointer; | |
17 | template<class U> | |
18 | struct rebind { | |
19 | typedef A1<U> other; | |
20 | }; | |
21 | }; | |
22 | ||
23 | #if !defined(BOOST_NO_CXX11_ALLOCATOR) | |
24 | template<class T> | |
25 | struct A2 { | |
26 | typedef T value_type; | |
27 | }; | |
28 | #endif | |
29 | ||
30 | int main() | |
31 | { | |
32 | BOOST_TEST_TRAIT_TRUE((boost::core::is_same<int*, | |
33 | boost::allocator_const_void_pointer<A1<char> >::type>)); | |
34 | #if !defined(BOOST_NO_CXX11_ALLOCATOR) | |
35 | BOOST_TEST_TRAIT_TRUE((boost::core::is_same<const void*, | |
36 | boost::allocator_const_void_pointer<A2<int> >::type>)); | |
37 | #endif | |
38 | return boost::report_errors(); | |
39 | } |