IVGCVSW-8159 Fixed issues building with NDK r26

* The compiler shipped with NDK r26 has stricter rules around certain
  warnings and deprecation notices.
  * Fixed warnings for unqualified call to 'std::move'
  * Fixed error where the half values weren't being cast to a float
    when calling 'std::nan'
  * Removed unnecessary subtensor unit tests for neon

Signed-off-by: Mike Kelly <mike.kelly@arm.com>
Change-Id: I4ceb46e55ff5f2a754452e3a43de2188d58bf927
diff --git a/include/armnn/utility/TransformIterator.hpp b/include/armnn/utility/TransformIterator.hpp
index b038447..e37c8a7 100644
--- a/include/armnn/utility/TransformIterator.hpp
+++ b/include/armnn/utility/TransformIterator.hpp
@@ -8,7 +8,6 @@
 
 namespace armnn
 {
-
 template<typename Function,
         typename Iterator,
         typename Category = typename std::iterator_traits<Iterator>::iterator_category,
@@ -16,7 +15,7 @@
         typename Distance = typename std::iterator_traits<Iterator>::difference_type,
         typename Pointer = typename std::iterator_traits<Iterator>::pointer,
         typename Reference =
-        typename std::result_of<const Function(typename std::iterator_traits<Iterator>::reference)>::type
+                typename std::invoke_result<const Function, typename std::iterator_traits<Iterator>::reference>::type
 >
 class TransformIterator
 {
@@ -73,7 +72,7 @@
     bool operator<=(const TransformIterator& rhs) const {return m_it <= rhs.m_it;}
 
     bool operator==(TransformIterator other) const {return (m_it == other.m_it);}
-    bool operator!=(TransformIterator other) const {return !(m_it == other.m_it);}
+    bool operator!=(TransformIterator other) const {return (m_it != other.m_it);}
 
     Reference operator*() const {return m_fn(*m_it);}
 
diff --git a/include/armnnTestUtils/TensorHelpers.hpp b/include/armnnTestUtils/TensorHelpers.hpp
index fa9c970..14c5061 100644
--- a/include/armnnTestUtils/TensorHelpers.hpp
+++ b/include/armnnTestUtils/TensorHelpers.hpp
@@ -47,7 +47,7 @@
             return true;
         }
 
-        if (std::isnan(a) && std::isnan(b))
+        if (std::isnan(static_cast<float>(a)) && std::isnan(static_cast<float>(b)))
         {
             return true;
         }