diff --git a/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.hxx b/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.hxx
index 817f53bb70dfcb9872ebec35dadca31f8c014476..2f1fb0596102830698b677c3514b1dd283d94d34 100644
--- a/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.hxx
+++ b/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.hxx
@@ -232,7 +232,11 @@ template
  */
 template
   < typename T
+#if GDAL_VERSION_NUM >= 2030000
+  , void ( OGRFeature::*ptr_to_function )(int, int, const T*)
+#else
   , void ( OGRFeature::*ptr_to_function )(int, int, T*) // not const-correct
+#endif
   , typename ActualParamType = std::vector<T>
   , bool Is_contiguous = boost::is_contiguous<ActualParamType>::value
   > class TagDispatchMemberContainerSetterPtr;
@@ -241,7 +245,11 @@ template
  */
 template
   < typename T
+#if GDAL_VERSION_NUM >= 2030000
+  , void ( OGRFeature::*ptr_to_function )(int, int, const T*)
+#else
   , void ( OGRFeature::*ptr_to_function )(int, int, T*) // not const-correct
+#endif
   , typename ActualParamType
   > class TagDispatchMemberContainerSetterPtr<T, ptr_to_function, ActualParamType, true>
     {
@@ -257,7 +265,11 @@ template
  */
 template
   < typename T
+#if GDAL_VERSION_NUM >= 2030000
+  , void ( OGRFeature::*ptr_to_function )(int, int, const T*)
+#else
   , void ( OGRFeature::*ptr_to_function )(int, int, T*) // not const-correct
+#endif
   , typename ActualParamType
   > class TagDispatchMemberContainerSetterPtr<T, ptr_to_function, ActualParamType, false>
     {