FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
python/test/andreas_beyer.cpp at python · 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
/
test
/
andreas_beyer.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
61 lines (53 loc) · 1.2 KB
Breadcrumbs
python
/
test
/
andreas_beyer.cpp
Copy path
File metadata and controls
61 lines (53 loc) · 1.2 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
//
Copyright David Abrahams 2006. 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)
#
include
<
boost/python.hpp
>
#
include
<
boost/enable_shared_from_this.hpp
>
#
include
<
boost/shared_ptr.hpp
>
using
namespace
boost
;
class
A
:
public
enable_shared_from_this
<A> {
public:
A
() : val(
0
) {};
int
val;
typedef
shared_ptr<A> A_ptr;
A_ptr
self
() {
A_ptr self;
self =
shared_from_this
();
return
self;
}
};
class
B
{
public:
B
() {
a =
A::A_ptr
(
new
A
());
}
void
set
(A::A_ptr _a) {
this
->
a
= _a;
}
A::A_ptr
get
() {
return
a;
}
A::A_ptr a;
};
template
<
class
T
>
void
hold_python
(shared_ptr<T>& x)
{
x = python::extract<shared_ptr<T> >(
python::object
(x) );
}
A::A_ptr
get_b_a
(shared_ptr<B> b)
{
hold_python
(b->
a
);
return
b->
get
();
}
BOOST_PYTHON_MODULE
(andreas_beyer_ext) {
python::class_<A, noncopyable> (
"
A
"
)
.
def
(
"
self
"
, &A::self)
.
def_readwrite
(
"
val
"
, &A::val)
;
python::register_ptr_to_python< A::A_ptr >();
python::class_<B>(
"
B
"
)
.
def
(
"
set
"
, &B::set)
//
.def("get", &B::get)
.
def
(
"
get
"
, get_b_a)
;
}
Back
|
FazBrowse Home
|
New Git URL