PATH:
opt
/
cpanel
/
ea-ruby27
/
src
/
passenger-release-6.1.2
/
src
/
cxx_supportlib
/
vendor-modified
/
boost
/
core
/* Copyright 2019 Glen Joseph Fernandes (glenjofe@gmail.com) Distributed under the Boost Software License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) */ #ifndef BOOST_CORE_NOINIT_ADAPTOR_HPP #define BOOST_CORE_NOINIT_ADAPTOR_HPP #include <boost/core/allocator_access.hpp> namespace boost { template<class A> struct noinit_adaptor : A { typedef void _default_construct_destroy; template<class U> struct rebind { typedef noinit_adaptor<typename allocator_rebind<A, U>::type> other; }; noinit_adaptor() : A() { } #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) template<class U> noinit_adaptor(U&& u) BOOST_NOEXCEPT : A(std::forward<U>(u)) { } #else template<class U> noinit_adaptor(const U& u) BOOST_NOEXCEPT : A(u) { } template<class U> noinit_adaptor(U& u) BOOST_NOEXCEPT : A(u) { } #endif template<class U> noinit_adaptor(const noinit_adaptor<U>& u) BOOST_NOEXCEPT : A(static_cast<const A&>(u)) { } template<class U> void construct(U* p) { ::new((void*)p) U; } #if defined(BOOST_NO_CXX11_ALLOCATOR) template<class U, class V> void construct(U* p, const V& v) { ::new((void*)p) U(v); } #endif template<class U> void destroy(U* p) { p->~U(); (void)p; } }; template<class T, class U> inline bool operator==(const noinit_adaptor<T>& lhs, const noinit_adaptor<U>& rhs) BOOST_NOEXCEPT { return static_cast<const T&>(lhs) == static_cast<const U&>(rhs); } template<class T, class U> inline bool operator!=(const noinit_adaptor<T>& lhs, const noinit_adaptor<U>& rhs) BOOST_NOEXCEPT { return !(lhs == rhs); } template<class A> inline noinit_adaptor<A> noinit_adapt(const A& a) BOOST_NOEXCEPT { return noinit_adaptor<A>(a); } } /* boost */ #endif
[-] ref.hpp
[edit]
[-] default_allocator.hpp
[edit]
[-] allocator_access.hpp
[edit]
[-] no_exceptions_support.hpp
[edit]
[-] uncaught_exceptions.hpp
[edit]
[-] invoke_swap.hpp
[edit]
[-] quick_exit.hpp
[edit]
[-] launder.hpp
[edit]
[-] swap.hpp
[edit]
[-] enable_if.hpp
[edit]
[-] first_scalar.hpp
[edit]
[-] memory_resource.hpp
[edit]
[-] make_span.hpp
[edit]
[-] scoped_enum.hpp
[edit]
[-] exchange.hpp
[edit]
[-] cmath.hpp
[edit]
[-] lightweight_test_trait.hpp
[edit]
[-] max_align.hpp
[edit]
[-] demangle.hpp
[edit]
[-] noinit_adaptor.hpp
[edit]
[-] empty_value.hpp
[edit]
[+]
..
[-] underlying_type.hpp
[edit]
[-] null_deleter.hpp
[edit]
[-] data.hpp
[edit]
[-] allocator_traits.hpp
[edit]
[-] is_same.hpp
[edit]
[-] verbose_terminate_handler.hpp
[edit]
[-] fclose_deleter.hpp
[edit]
[-] span.hpp
[edit]
[-] lightweight_test.hpp
[edit]
[-] use_default.hpp
[edit]
[-] alignof.hpp
[edit]
[-] size.hpp
[edit]
[-] checked_delete.hpp
[edit]
[-] typeinfo.hpp
[edit]
[-] nvp.hpp
[edit]
[-] serialization.hpp
[edit]
[-] snprintf.hpp
[edit]
[-] type_name.hpp
[edit]
[-] addressof.hpp
[edit]
[-] explicit_operator_bool.hpp
[edit]
[-] yield_primitives.hpp
[edit]
[-] pointer_in_range.hpp
[edit]
[+]
detail
[-] pointer_traits.hpp
[edit]
[-] identity.hpp
[edit]
[-] alloc_construct.hpp
[edit]
[-] ignore_unused.hpp
[edit]
[-] bit.hpp
[edit]
[-] noncopyable.hpp
[edit]
[-] functor.hpp
[edit]