diff options
author | Moritz Pflanzer <moritz.pflanzer@arm.com> | 2017-06-29 14:51:57 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-09-17 14:15:39 +0100 |
commit | d0ae8b8ac8a371fd552c46d4b3be3db8628a5ade (patch) | |
tree | e4b035d01add61c37fcbeaf38a6a54e550235d8f /arm_compute/core | |
parent | 5cb4c42cb5d781a44409ebc97a408e1379ce182d (diff) | |
download | ComputeLibrary-d0ae8b8ac8a371fd552c46d4b3be3db8628a5ade.tar.gz |
COMPMID-417: Extract common toolchain support file
The support file is needed as Android toolchains are missing some C++11
functions. It further includes functions that have been introduced in
C++14 but which we already need.
Eventually the support file might become unnecessary if the Android
compilers improve and we switch to C++14.
Change-Id: Ib5ec506f1a17c78149c315ab2096b901b852c180
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/79247
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Reviewed-by: Pablo Tello <pablo.tello@arm.com>
Diffstat (limited to 'arm_compute/core')
-rw-r--r-- | arm_compute/core/CL/CLHelpers.h | 5 | ||||
-rw-r--r-- | arm_compute/core/Helpers.h | 40 |
2 files changed, 3 insertions, 42 deletions
diff --git a/arm_compute/core/CL/CLHelpers.h b/arm_compute/core/CL/CLHelpers.h index 26253e3f38..7b3af33fee 100644 --- a/arm_compute/core/CL/CLHelpers.h +++ b/arm_compute/core/CL/CLHelpers.h @@ -26,6 +26,7 @@ #include "arm_compute/core/CL/OpenCL.h" #include "arm_compute/core/Helpers.h" +#include "support/ToolchainSupport.h" #include <string> @@ -70,7 +71,7 @@ const std::string &string_from_target(GPUTarget target); template <typename Kernel, typename... T> std::unique_ptr<Kernel> create_configure_kernel(T &&... args) { - std::unique_ptr<Kernel> k = arm_compute::cpp14::make_unique<Kernel>(); + std::unique_ptr<Kernel> k = arm_compute::support::cpp14::make_unique<Kernel>(); k->configure(std::forward<T>(args)...); return k; } @@ -82,7 +83,7 @@ std::unique_ptr<Kernel> create_configure_kernel(T &&... args) template <typename Kernel> std::unique_ptr<Kernel> create_kernel() { - std::unique_ptr<Kernel> k = arm_compute::cpp14::make_unique<Kernel>(); + std::unique_ptr<Kernel> k = arm_compute::support::cpp14::make_unique<Kernel>(); return k; } diff --git a/arm_compute/core/Helpers.h b/arm_compute/core/Helpers.h index 07318eaf7a..dfcca96eec 100644 --- a/arm_compute/core/Helpers.h +++ b/arm_compute/core/Helpers.h @@ -46,46 +46,6 @@ class IKernel; class ITensor; class ITensorInfo; -namespace cpp14 -{ -template <class T> -struct _Unique_if -{ - typedef std::unique_ptr<T> _Single_object; -}; - -template <class T> -struct _Unique_if<T[]> -{ - typedef std::unique_ptr<T[]> _Unknown_bound; -}; - -template <class T, size_t N> -struct _Unique_if<T[N]> -{ - typedef void _Known_bound; -}; - -template <class T, class... Args> -typename _Unique_if<T>::_Single_object -make_unique(Args &&... args) -{ - return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); -} - -template <class T> -typename _Unique_if<T>::_Unknown_bound -make_unique(size_t n) -{ - typedef typename std::remove_extent<T>::type U; - return std::unique_ptr<T>(new U[n]()); -} - -template <class T, class... Args> -typename _Unique_if<T>::_Known_bound -make_unique(Args &&...) = delete; -} - template <typename T> struct enable_bitwise_ops { |