From 916ef48846b40f690f41583d288eb1c3c40db0a3 Mon Sep 17 00:00:00 2001 From: Benoit Steiner Date: Wed, 13 Aug 2014 08:44:47 -0700 Subject: [PATCH] Added ability to get the nth element from an abstract array type. --- .../Eigen/CXX11/src/Core/util/EmulateCXX11Meta.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/unsupported/Eigen/CXX11/src/Core/util/EmulateCXX11Meta.h b/unsupported/Eigen/CXX11/src/Core/util/EmulateCXX11Meta.h index 1d3164d6a..4c6b95773 100644 --- a/unsupported/Eigen/CXX11/src/Core/util/EmulateCXX11Meta.h +++ b/unsupported/Eigen/CXX11/src/Core/util/EmulateCXX11Meta.h @@ -181,6 +181,15 @@ array repeat(t v) { return array; } +template +EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename Head::type array_get(type_list& a) { + return get >::value; +} +template +EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename Head::type array_get(const type_list& a) { + return get >::value; +} + template EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE t array_prod(const array& a) { t prod = 1; @@ -196,8 +205,8 @@ template EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T& array_get(array& a) { return a[I]; } -template EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE -const T& array_get(const array& a) { +template +EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const T& array_get(const array& a) { return a[I]; }