📄 boost_has_part_alloc.ipp
字号:
// (C) Copyright John Maddock 2001. // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)// See http://www.boost.org/libs/config for most recent version.// MACRO: BOOST_HAS_PARTIAL_STD_ALLOCATOR// TITLE: limited std::allocator support// DESCRIPTION: The std lib has at least some kind of stanfard allocator// with allocate/deallocate members and probably not much more.#include <memory>namespace boost_has_partial_std_allocator{//// test everything except rebind template members://template <class T>int test_allocator(const T& i){ typedef std::allocator<int> alloc1_t; typedef typename alloc1_t::size_type size_type; typedef typename alloc1_t::difference_type difference_type; typedef typename alloc1_t::pointer pointer; typedef typename alloc1_t::const_pointer const_pointer; typedef typename alloc1_t::reference reference; typedef typename alloc1_t::const_reference const_reference; typedef typename alloc1_t::value_type value_type; alloc1_t a1; pointer p = a1.allocate(1); const_pointer cp = p; a1.construct(p,i); size_type s = a1.max_size(); (void)s; reference r = *p; const_reference cr = *cp; if(p != a1.address(r)) return -1; if(cp != a1.address(cr)) return -1; a1.destroy(p); a1.deallocate(p,1); return 0;}int test(){ return test_allocator(0);}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -