📄 boost_no_std_allocator.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 the most recent version.// MACRO: BOOST_NO_STD_ALLOCATOR// TITLE: std::allocator// DESCRIPTION: The C++ standard library does not provide// a standards conforming std::allocator.#ifndef BOOST_NESTED_TEMPLATE#define BOOST_NESTED_TEMPLATE template#endif#include <memory>namespace boost_no_std_allocator{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; typedef typename alloc1_t::BOOST_NESTED_TEMPLATE rebind<double> binder_t; typedef typename binder_t::other alloc2_t; alloc1_t a1; alloc1_t a2(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); alloc2_t a3(a1); // this chokes early versions of the MSL library // and isn't currently required by anything in boost // so don't test for now... // a3 = a2; return 0;}int test(){ return test_allocator(0);}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -