mirror of https://github.com/pybind/pybind11.git
86 lines
2.7 KiB
Python
Executable File
86 lines
2.7 KiB
Python
Executable File
#!/usr/bin/env python
|
|
from __future__ import print_function
|
|
import sys
|
|
sys.path.append('.')
|
|
|
|
from example import MyObject1
|
|
from example import MyObject2
|
|
from example import MyObject3
|
|
|
|
from example import make_object_1
|
|
from example import make_object_2
|
|
from example import make_myobject1_1
|
|
from example import make_myobject1_2
|
|
from example import make_myobject2_1
|
|
from example import make_myobject2_2
|
|
from example import make_myobject3_1
|
|
from example import make_myobject3_2
|
|
|
|
from example import print_object_1
|
|
from example import print_object_2
|
|
from example import print_object_3
|
|
from example import print_object_4
|
|
|
|
from example import print_myobject1_1
|
|
from example import print_myobject1_2
|
|
from example import print_myobject1_3
|
|
from example import print_myobject1_4
|
|
|
|
from example import print_myobject2_1
|
|
from example import print_myobject2_2
|
|
from example import print_myobject2_3
|
|
from example import print_myobject2_4
|
|
|
|
from example import print_myobject3_1
|
|
from example import print_myobject3_2
|
|
from example import print_myobject3_3
|
|
from example import print_myobject3_4
|
|
|
|
for o in [make_object_1(), make_object_2(), MyObject1(3)]:
|
|
print("Reference count = %i" % o.getRefCount())
|
|
print_object_1(o)
|
|
print_object_2(o)
|
|
print_object_3(o)
|
|
print_object_4(o)
|
|
|
|
for o in [make_myobject1_1(), make_myobject1_2(), MyObject1(6), 7]:
|
|
print(o)
|
|
if not isinstance(o, int):
|
|
print_object_1(o)
|
|
print_object_2(o)
|
|
print_object_3(o)
|
|
print_object_4(o)
|
|
print_myobject1_1(o)
|
|
print_myobject1_2(o)
|
|
print_myobject1_3(o)
|
|
print_myobject1_4(o)
|
|
|
|
for o in [MyObject2(8), make_myobject2_1(), make_myobject2_2()]:
|
|
print(o)
|
|
print_myobject2_1(o)
|
|
print_myobject2_2(o)
|
|
print_myobject2_3(o)
|
|
print_myobject2_4(o)
|
|
|
|
for o in [MyObject3(9), make_myobject3_1(), make_myobject3_2()]:
|
|
print(o)
|
|
print_myobject3_1(o)
|
|
print_myobject3_2(o)
|
|
print_myobject3_3(o)
|
|
print_myobject3_4(o)
|
|
|
|
from example import ConstructorStats, cstats_ref, Object
|
|
|
|
cstats = [ConstructorStats.get(Object), ConstructorStats.get(MyObject1),
|
|
ConstructorStats.get(MyObject2), ConstructorStats.get(MyObject3),
|
|
cstats_ref()]
|
|
print("Instances not destroyed:", [x.alive() for x in cstats])
|
|
o = None
|
|
print("Instances not destroyed:", [x.alive() for x in cstats])
|
|
print("Object value constructions:", [x.values() for x in cstats])
|
|
print("Default constructions:", [x.default_constructions for x in cstats])
|
|
print("Copy constructions:", [x.copy_constructions for x in cstats])
|
|
#print("Move constructions:", [x.move_constructions >= 0 for x in cstats]) # Doesn't invoke any
|
|
print("Copy assignments:", [x.copy_assignments for x in cstats])
|
|
print("Move assignments:", [x.move_assignments for x in cstats])
|