//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is dual licensed under the MIT and the University of Illinois Open // Source Licenses. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // template // class scoped_allocator_adaptor // : public OuterAlloc // { // public: // typedef OuterAlloc outer_allocator_type; // typedef typename OuterTraits::size_type size_type; // typedef typename OuterTraits::difference_type difference_type; // typedef typename OuterTraits::pointer pointer; // typedef typename OuterTraits::const_pointer const_pointer; // typedef typename OuterTraits::void_pointer void_pointer; // typedef typename OuterTraits::const_void_pointer const_void_pointer; // }; #include #include #include "allocators.h" int main() { #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES static_assert((std::is_base_of< A1, std::scoped_allocator_adaptor> >::value), ""); static_assert((std::is_same< std::scoped_allocator_adaptor>::outer_allocator_type, A1>::value), ""); static_assert((std::is_same< std::scoped_allocator_adaptor>::size_type, std::make_unsigned::type>::value), ""); static_assert((std::is_same< std::scoped_allocator_adaptor>::difference_type, std::ptrdiff_t>::value), ""); static_assert((std::is_same< std::scoped_allocator_adaptor>::pointer, int*>::value), ""); static_assert((std::is_same< std::scoped_allocator_adaptor>::const_pointer, const int*>::value), ""); static_assert((std::is_same< std::scoped_allocator_adaptor>::void_pointer, void*>::value), ""); static_assert((std::is_same< std::scoped_allocator_adaptor>::const_void_pointer, const void*>::value), ""); static_assert((std::is_base_of< A2, std::scoped_allocator_adaptor, A1> >::value), ""); static_assert((std::is_same< std::scoped_allocator_adaptor, A1>::outer_allocator_type, A2>::value), ""); static_assert((std::is_same< std::scoped_allocator_adaptor, A1>::size_type, unsigned>::value), ""); static_assert((std::is_same< std::scoped_allocator_adaptor, A1>::difference_type, int>::value), ""); static_assert((std::is_same< std::scoped_allocator_adaptor, A1>::pointer, int*>::value), ""); static_assert((std::is_same< std::scoped_allocator_adaptor, A1>::const_pointer, const int*>::value), ""); static_assert((std::is_same< std::scoped_allocator_adaptor, A1>::void_pointer, void*>::value), ""); static_assert((std::is_same< std::scoped_allocator_adaptor, A1>::const_void_pointer, const void*>::value), ""); #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES }