Skip to content

Commit b0aafd5

Browse files
Add python support for static dtata members.
1 parent dcbe1e9 commit b0aafd5

4 files changed

Lines changed: 13 additions & 0 deletions

File tree

pythonExample/example.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,4 +157,7 @@
157157

158158
# check that virtual functions work correctly from polymorphic returns
159159
assert r.bar.foo().name()=="Bar"
160+
161+
# test static member
162+
assert r.sbar.name()=="Bar"
160163
exit(0)

pythonExample/pythonExample.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ Root root;
66
const int Foo::csi;
77
int Foo::si=25;
88

9+
Bar Root::sbar;
10+
911
void registerRoot()
1012
{
1113
addPythonObject("root1",root);

pythonExample/pythonExample.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ struct Root
155155
Defaultless defaultless{1};
156156
Bar bar;
157157
Bar1 bar1;
158+
static Bar sbar;
158159
FooBar1& getFB1() {
159160
static FooBar1 m;
160161
return m;

python_base.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1048,6 +1048,13 @@ namespace classdesc
10481048
p.addStaticMember<C>(d,m);
10491049
}
10501050

1051+
template <class C, class T, class M>
1052+
typename enable_if<Not<is_function<M> >, void>::T
1053+
python_type(python_t& p, const string& d, M* m)
1054+
{
1055+
p.addStaticMember<C>(d,m);
1056+
}
1057+
10511058
template <class T>
10521059
void python(python_t& p, const string& d, is_constructor, T* a)
10531060
{}

0 commit comments

Comments
 (0)