diff --git a/Modules/Core/Metadata/include/otbMetaDataKey.h b/Modules/Core/Metadata/include/otbMetaDataKey.h
index d4533fa77725b72fc5b04aa4e0a90da540507142..df3ee36f575e82dd0df015352519aa144422cef1 100644
--- a/Modules/Core/Metadata/include/otbMetaDataKey.h
+++ b/Modules/Core/Metadata/include/otbMetaDataKey.h
@@ -276,12 +276,8 @@ public:
 template <unsigned int VDim>
 bool operator==(const LUT<VDim> & lhs, const LUT<VDim> & rhs)
 {
-  bool axisComparison = true;
-  for (unsigned int i = 0; i < VDim; i++)
-  {
-    axisComparison = axisComparison && lhs.Axis[i] == rhs.Axis[i];
-  }
-  return axisComparison && lhs.Array == rhs.Array;
+  return std::equal(std::begin(lhs.Array), std::end(lhs.Array), std::begin(rhs.Array) ) 
+          && lhs.Array == rhs.Array;
 }