Bugfix: Remove implicit sign conversion causing -Werror=sign-conversion

Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
Change-Id: If2d5005889b8b0011e4592b46276367798556751
diff --git a/include/armnn/Tensor.hpp b/include/armnn/Tensor.hpp
index 1bbc19f..2326a0f 100644
--- a/include/armnn/Tensor.hpp
+++ b/include/armnn/Tensor.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2017,2022-2023 Arm Ltd and Contributors. All rights reserved.
+// Copyright © 2017,2022-2024 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 #pragma once
@@ -188,6 +188,8 @@
     bool operator==(const TensorInfo& other) const;
     bool operator!=(const TensorInfo& other) const;
 
+    using DifferenceType = std::vector<TensorInfo>::difference_type;
+
     const TensorShape& GetShape() const              { return m_Shape; }
     TensorShape& GetShape()                          { return m_Shape; }
     void SetShape(const TensorShape& newShape)       { m_Shape = newShape; }
diff --git a/src/backends/neon/NeonLayerSupport.cpp b/src/backends/neon/NeonLayerSupport.cpp
index 4be5b7c..ee8f6f2 100644
--- a/src/backends/neon/NeonLayerSupport.cpp
+++ b/src/backends/neon/NeonLayerSupport.cpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2017-2023 Arm Ltd and Contributors. All rights reserved.
+// Copyright © 2017-2024 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
@@ -13,6 +13,7 @@
 
 #include <LayerSupportCommon.hpp>
 #include <armnn/utility/IgnoreUnused.hpp>
+#include <armnn/utility/NumericCast.hpp>
 #include <armnn/utility/PolymorphicDowncast.hpp>
 
 #if defined(ARMCOMPUTENEON_ENABLED)
@@ -438,8 +439,9 @@
                 throw InvalidArgumentException("Invalid number of FusedLayer TensorInfos.");
             }
 
-            std::vector<TensorInfo> inputInfos(infos.begin(), infos.begin() + fusedDescriptor.m_NumInputSlots);
-            std::vector<TensorInfo> outputInfos(infos.begin() + fusedDescriptor.m_NumInputSlots, infos.end());
+            auto it = infos.begin() + numeric_cast<TensorInfo::DifferenceType>(fusedDescriptor.m_NumInputSlots);
+            std::vector<TensorInfo> inputInfos(infos.begin(), it);
+            std::vector<TensorInfo> outputInfos(it, infos.end());
 
             return support.IsFusedSupported({inputInfos.begin(), inputInfos.end()},
                                             {outputInfos.begin(), outputInfos.end()},