%module cpp11_std_array #if defined(SWIGPYTHON) || defined(SWIGRUBY) || defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGGO) %{ #include %} %include %template(ArrayInt6) std::array; %inline %{ std::array arrayOutVal() { return { -2, -1, 0, 0, 1, 2 }; } std::array & arrayOutRef() { static std::array a = { -2, -1, 0, 0, 1, 2 }; return a; } const std::array & arrayOutConstRef() { static std::array a = { -2, -1, 0, 0, 1, 2 }; return a; } std::array * arrayOutPtr() { static std::array a = { -2, -1, 0, 0, 1, 2 }; return &a; } std::array arrayInVal(std::array myarray) { std::array a = myarray; for (auto& val : a) { val *= 10; } return a; } const std::array & arrayInConstRef(const std::array & myarray) { static std::array a = myarray; for (auto& val : a) { val *= 10; } return a; } void arrayInRef(std::array & myarray) { for (auto& val : myarray) { val *= 10; } } void arrayInPtr(std::array * myarray) { for (auto& val : *myarray) { val *= 10; } } %} #endif