mirror of https://github.com/pybind/pybind11
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.1 KiB
50 lines
1.1 KiB
from __future__ import print_function |
|
import sys |
|
|
|
sys.path.append('.') |
|
|
|
from example import StringList, print_opaque_list |
|
from example import ClassWithSTLVecProperty |
|
from example import return_void_ptr, print_void_ptr |
|
from example import return_null_str, print_null_str |
|
from example import return_unique_ptr |
|
from example import ExampleMandA |
|
|
|
##### |
|
|
|
l = StringList() |
|
l.push_back("Element 1") |
|
l.push_back("Element 2") |
|
print_opaque_list(l) |
|
print("Back element is %s" % l.back()) |
|
for i, k in enumerate(l): |
|
print("%i/%i : %s" % (i + 1, len(l), k)) |
|
l.pop_back() |
|
print_opaque_list(l) |
|
|
|
##### |
|
cvp = ClassWithSTLVecProperty() |
|
print_opaque_list(cvp.stringList) |
|
|
|
cvp.stringList = l |
|
cvp.stringList.push_back("Element 3") |
|
print_opaque_list(cvp.stringList) |
|
|
|
##### |
|
|
|
print_void_ptr(return_void_ptr()) |
|
print_void_ptr(ExampleMandA()) # Should also work for other C++ types |
|
|
|
try: |
|
print_void_ptr([1, 2, 3]) # This should not work |
|
except Exception as e: |
|
print("Caught expected exception: " + str(e)) |
|
|
|
print(return_null_str()) |
|
print_null_str(return_null_str()) |
|
|
|
##### |
|
|
|
ptr = return_unique_ptr() |
|
print(ptr) |
|
print_opaque_list(ptr)
|
|
|