Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/boost/python/detail/construct.hpp @ 35

Last change on this file since 35 was 29, checked in by landauf, 16 years ago

updated boost from 1_33_1 to 1_34_1

File size: 1.1 KB
Line 
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
12# if !defined(BOOST_MSVC) || BOOST_MSVC > 1300
13                       , T const volatile*
14# else
15                       , T const*
16# endif
17    )
18{
19    new (storage) T(x);
20}
21
22template <class T, class Arg>
23void construct_referent_impl(void* storage, Arg& x, T&(*)())
24{
25    construct_pointee(storage, x, (T*)0);
26}
27
28template <class T, class Arg>
29void construct_referent(void* storage, Arg const& x, T(*tag)() = 0)
30{
31    construct_referent_impl(storage, x, tag);
32}
33
34template <class T, class Arg>
35void construct_referent(void* storage, Arg& x, T(*tag)() = 0)
36{
37    construct_referent_impl(storage, x, tag);
38}
39
40}}} // namespace boost::python::detail
41
42#endif // CONSTRUCT_REFERENCE_DWA2002716_HPP
Note: See TracBrowser for help on using the repository browser.