]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/python/include/boost/python/detail/construct.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / python / include / boost / python / detail / construct.hpp
CommitLineData
7c673cae
FG
1// Copyright David Abrahams 2002.
2// Distributed under the Boost Software License, Version 1.0. (See
3// accompanying file LICENSE_1_0.txt or copy at
4// http://www.boost.org/LICENSE_1_0.txt)
5#ifndef CONSTRUCT_REFERENCE_DWA2002716_HPP
6# define CONSTRUCT_REFERENCE_DWA2002716_HPP
7
8namespace boost { namespace python { namespace detail {
9
10template <class T, class Arg>
11void construct_pointee(void* storage, Arg& x, T const volatile*)
12{
13 new (storage) T(x);
14}
15
16template <class T, class Arg>
17void construct_referent_impl(void* storage, Arg& x, T&(*)())
18{
19 construct_pointee(storage, x, (T*)0);
20}
21
22template <class T, class Arg>
23void construct_referent(void* storage, Arg const& x, T(*tag)() = 0)
24{
25 construct_referent_impl(storage, x, tag);
26}
27
28template <class T, class Arg>
29void construct_referent(void* storage, Arg& x, T(*tag)() = 0)
30{
31 construct_referent_impl(storage, x, tag);
32}
33
34}}} // namespace boost::python::detail
35
36#endif // CONSTRUCT_REFERENCE_DWA2002716_HPP