Commit 9c739285 authored by Xavier Thompson's avatar Xavier Thompson

Add unit test for cpp iteration over attribute of temporary object

parent ebbc53de
...@@ -11,6 +11,10 @@ cdef extern from "cpp_iterators_simple.h": ...@@ -11,6 +11,10 @@ cdef extern from "cpp_iterators_simple.h":
double* begin() double* begin()
double* end() double* end()
cdef cppclass HasIterableAttribute:
vector[int] vec
HasIterableAttribute()
def test_vector(py_v): def test_vector(py_v):
""" """
>>> test_vector([1, 2, 3]) >>> test_vector([1, 2, 3])
...@@ -177,3 +181,21 @@ def test_iteration_from_function_call(): ...@@ -177,3 +181,21 @@ def test_iteration_from_function_call():
print(i) print(i)
for i in make_vec3(): for i in make_vec3():
print(i) print(i)
cdef HasIterableAttribute get_has_iterable_attribute():
return HasIterableAttribute()
def test_iteration_from_function_call_attribute():
"""
>>> test_iteration_from_function_call_attribute()
1
2
3
1
2
3
"""
for i in HasIterableAttribute().vec:
print(i)
for i in get_has_iterable_attribute().vec:
print(i)
#include <vector>
class DoublePointerIter { class DoublePointerIter {
public: public:
DoublePointerIter(double* start, int len) : start_(start), len_(len) { } DoublePointerIter(double* start, int len) : start_(start), len_(len) { }
...@@ -8,3 +10,9 @@ private: ...@@ -8,3 +10,9 @@ private:
int len_; int len_;
}; };
class HasIterableAttribute {
public:
std::vector<int> vec;
HasIterableAttribute() : vec({1, 2, 3}) {}
};
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment