FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
python/include/boost/python/scope.hpp at develop · boostorg/python · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
boostorg
/
python
Public
Notifications
You must be signed in to change notification settings
Fork
223
Star
537
Code
Issues
173
Pull requests
34
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
python
/
include
/
boost
/
python
/
scope.hpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
77 lines (64 loc) · 1.83 KB
Breadcrumbs
python
/
include
/
boost
/
python
/
scope.hpp
Copy path
File metadata and controls
77 lines (64 loc) · 1.83 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//
Copyright David Abrahams 2002.
//
Distributed under 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)
#
ifndef
SCOPE_DWA2002724_HPP
#
define
SCOPE_DWA2002724_HPP
#
include
<
boost/python/detail/prefix.hpp
>
#
include
<
boost/python/object.hpp
>
#
include
<
boost/python/refcount.hpp
>
namespace
boost
{
namespace
python
{
namespace
detail
{
//
Making this a namespace-scope variable to avoid Cygwin issues.
//
Use a PyObject* to avoid problems with static destruction after Py_Finalize
extern
BOOST_PYTHON_DECL
PyObject* current_scope;
}
class
scope
: public object
{
public:
inline
scope
(scope
const
&);
inline
scope
(object
const
&);
inline
scope
();
inline
~scope
();
private:
//
data members
PyObject* m_previous_scope;
private:
//
unimplemented functions
void
operator
=(scope
const
&);
};
inline
scope::scope
(object
const
& new_scope)
: object(new_scope)
, m_previous_scope(detail::current_scope)
{
detail::current_scope =
python::incref
(new_scope.
ptr
());
}
inline
scope::scope
()
: object(detail::borrowed_reference(
detail::current_scope ? detail::current_scope : Py_None
))
, m_previous_scope(python::xincref(detail::current_scope))
{
}
inline
scope::~scope
()
{
python::xdecref
(detail::current_scope);
detail::current_scope = m_previous_scope;
}
namespace
converter
{
template
<>
struct
object_manager_traits
<scope>
: object_manager_traits<object>
{
};
}
//
Placing this after the specialization above suppresses a CWPro8.3 bug
inline
scope::scope
(scope
const
& new_scope)
: object(new_scope)
, m_previous_scope(detail::current_scope)
{
detail::current_scope =
python::incref
(new_scope.
ptr
());
}
}}
//
namespace boost::python
#
endif
//
SCOPE_DWA2002724_HPP
Back
|
FazBrowse Home
|
New Git URL