| /* |
| Copyright 2017 Glen Joseph Fernandes |
| (glenjofe@gmail.com) |
| |
| Distributed under Boost Software License, Version 1.0. |
| (See accompanying file LICENSE_1_0.txt or copy at |
| http://www.boost.org/LICENSE_1_0.txt) |
| */ |
| |
| // MACRO: BOOST_NO_CXX11_POINTER_TRAITS |
| // TITLE: C++11 <memory> lacks a correct std::pointer_traits |
| // DESCRIPTION: The standard library lacks a working std::pointer_traits. |
| |
| #include <memory> |
| |
| namespace boost_no_cxx11_pointer_traits { |
| |
| template<class T> |
| struct pointer { |
| template<class U> |
| using rebind = pointer<U>; |
| }; |
| |
| template<class T> |
| struct result { }; |
| |
| template<> |
| struct result<pointer<bool> > { |
| static const int value = 0; |
| }; |
| |
| int test() |
| { |
| return result<std::pointer_traits<pointer<int> >::rebind<bool> >::value; |
| } |
| |
| } /* boost_no_cxx11_pointer_traits */ |