Skip to content

OTB 6.4.0 fails to build with GDAl 2.3.0

Description

In preparation of the GDAL 2.3.0 release and the transition that will trigger in Debian, all packages that use C++ symbols from libgdal have been rebuilt with GDAL 2.3.0-beta1.

Unfortunately OTB 6.4.0 failed to build:

In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:318:105: error: could not convert template argument '& OGRFeature::GetFieldAsInteger' from '<unresolved overloaded function type>' to 'int (OGRFeature::*)
(int)'
   < mpl::pair<mpl::int_<OFTInteger>,     MemberGetterPtr<int,             &OGRFeature::GetFieldAsInteger> >
                                                                                                         ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:318:107: error: template argument 2 is invalid
   < mpl::pair<mpl::int_<OFTInteger>,     MemberGetterPtr<int,             &OGRFeature::GetFieldAsInteger> >
                                                                                                           ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:319:109: error: could not convert template argument '& OGRFeature::GetFieldAsIntegerList' from '<unresolved overloaded function type>' to 'const int* (OGRFeature::*)(int, int*)'
   , mpl::pair<mpl::int_<OFTIntegerList>, MemberContainerGetterPtr<int,    &OGRFeature::GetFieldAsIntegerList> >
                                                                                                             ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:319:111: error: template argument 2 is invalid
   , mpl::pair<mpl::int_<OFTIntegerList>, MemberContainerGetterPtr<int,    &OGRFeature::GetFieldAsIntegerList> >
                                                                                                               ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:320:104: error: could not convert template argument '& OGRFeature::GetFieldAsDouble' from '<unresolved overloaded function type>' to 'double (OGRFeature::*)(int)'
   , mpl::pair<mpl::int_<OFTReal>,        MemberGetterPtr<double,          &OGRFeature::GetFieldAsDouble> >
                                                                                                        ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:320:106: error: template argument 2 is invalid
   , mpl::pair<mpl::int_<OFTReal>,        MemberGetterPtr<double,          &OGRFeature::GetFieldAsDouble> >
                                                                                                          ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:321:108: error: could not convert template argument '& OGRFeature::GetFieldAsDoubleList' from '<unresolved overloaded function type>' to 'const double* (OGRFeature::*)(int, int*)'
   , mpl::pair<mpl::int_<OFTRealList>,    MemberContainerGetterPtr<double, &OGRFeature::GetFieldAsDoubleList> >
                                                                                                            ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:321:110: error: template argument 2 is invalid
   , mpl::pair<mpl::int_<OFTRealList>,    MemberContainerGetterPtr<double, &OGRFeature::GetFieldAsDoubleList> >
                                                                                                              ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:322:117: error: could not convert template argument '& OGRFeature::GetFieldAsString' from '<unresolved overloaded function type>' to 'const char* (OGRFeature::*)(int)'
   , mpl::pair<mpl::int_<OFTString>,      MemberGetterPtr<char const*,     &OGRFeature::GetFieldAsString, std::string> >
                                                                                                                     ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:322:119: error: template argument 2 is invalid
   , mpl::pair<mpl::int_<OFTString>,      MemberGetterPtr<char const*,     &OGRFeature::GetFieldAsString, std::string> >
                                                                                                                       ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:325:97: error: could not convert template argument '& OGRFeature::GetFieldAsInteger64' from '<unresolved overloaded function type>' to 'long long int (OGRFeature::*)(int)'
   , mpl::pair<mpl::int_<OFTInteger64>, MemberGetterPtr<GIntBig, &OGRFeature::GetFieldAsInteger64> >
                                                                                                 ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:325:99: error: template argument 2 is invalid
   , mpl::pair<mpl::int_<OFTInteger64>, MemberGetterPtr<GIntBig, &OGRFeature::GetFieldAsInteger64> >
                                                                                                   ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:326:114: error: could not convert template argument '& OGRFeature::GetFieldAsInteger64List' from '<unresolved overloaded function type>' to 'const long long int* (OGRFeature::*)(int, int*)'
   , mpl::pair<mpl::int_<OFTInteger64List>, MemberContainerGetterPtr<GIntBig, &OGRFeature::GetFieldAsInteger64List> >
                                                                                                                  ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:326:116: error: template argument 2 is invalid
   , mpl::pair<mpl::int_<OFTInteger64List>, MemberContainerGetterPtr<GIntBig, &OGRFeature::GetFieldAsInteger64List> >
                                                                                                                    ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:328:3: error: template argument 1 is invalid
   > FieldGetters_Map;
   ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:328:3: error: template argument 2 is invalid
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:328:3: error: template argument 3 is invalid
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:328:3: error: template argument 4 is invalid
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:328:3: error: template argument 5 is invalid
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:328:3: error: template argument 7 is invalid
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:328:3: error: template argument 8 is invalid
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:338:96: error: could not convert template argument '& OGRFeature::SetField' from '<unresolved overloaded function type>' to 'void (OGRFeature::*)(int, int, int*)'
   , mpl::pair<mpl::int_<OFTIntegerList>, MemberContainerSetterPtr<int,    &OGRFeature::SetField> >
                                                                                                ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:338:98: error: template argument 2 is invalid
   , mpl::pair<mpl::int_<OFTIntegerList>, MemberContainerSetterPtr<int,    &OGRFeature::SetField> >
                                                                                                  ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:340:96: error: could not convert template argument '& OGRFeature::SetField' from '<unresolved overloaded function type>' to 'void (OGRFeature::*)(int, int, double*)'
   , mpl::pair<mpl::int_<OFTRealList>,    MemberContainerSetterPtr<double, &OGRFeature::SetField> >
                                                                                                ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:340:98: error: template argument 2 is invalid
   , mpl::pair<mpl::int_<OFTRealList>,    MemberContainerSetterPtr<double, &OGRFeature::SetField> >
                                                                                                  ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:347:3: error: template argument 2 is invalid
   > FieldSetters_Map;
   ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:347:3: error: template argument 4 is invalid
In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:40:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:48:62: error: could not convert template argument '& OGRFeature::GetFieldAsInteger' from '<unresolved overloaded function type>' to 'int (OGRFeature::*)(int)'
   MemberGetterPtr<int,         &OGRFeature::GetFieldAsInteger>,
                                                              ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:49:61: error: could not convert template argument '& OGRFeature::GetFieldAsDouble' from '<unresolved overloaded function type>' to 'double (OGRFeature::*)(int)'
   MemberGetterPtr<double,      &OGRFeature::GetFieldAsDouble>
                                                             ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:50:3: error: template argument 1 is invalid
   >::value
   ^
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:50:3: error: template argument 2 is invalid
In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:36:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/usr/include/boost/mpl/at.hpp: In instantiation of 'struct boost::mpl::at<int, mpl_::int_<0> >':
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:428:75:   required from 'T otb::ogr::Field::GetValue() const [with T = int]'
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:143:31:   required from here
/usr/include/boost/mpl/at.hpp:31:8: error: no class template named 'apply' in 'struct boost::mpl::at_impl<boost::mpl::non_sequence_tag>'
 struct at
        ^~
In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx: In instantiation of 'T otb::ogr::Field::GetValue() const [with T = int]':
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:143:31:   required from here
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:428:75: error: no type named 'type' in 'struct boost::mpl::at<int, mpl_::int_<0> >'
   typedef typename boost::mpl::at<internal::FieldGetters_Map, Kind>::type GetterType;
                                                                           ^~~~~~~~~~
In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:40:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:431:25: error: no type named 'type' in 'struct boost::mpl::at<int, mpl_::int_<0> >'
   BOOST_STATIC_ASSERT(!(boost::is_same<GetterType, boost::mpl::void_>::value));
                        ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:36:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/usr/include/boost/mpl/at.hpp: In instantiation of 'struct boost::mpl::at<int, mpl_::int_<1> >':
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:428:75:   required from 'T otb::ogr::Field::GetValue() const [with T = std::vector<int>]'
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:147:53:   required from here
/usr/include/boost/mpl/at.hpp:31:8: error: no class template named 'apply' in 'struct boost::mpl::at_impl<boost::mpl::non_sequence_tag>'
 struct at
        ^~
In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx: In instantiation of 'T otb::ogr::Field::GetValue() const [with T = std::vector<int>]':
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:147:53:   required from here
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:428:75: error: no type named 'type' in 'struct boost::mpl::at<int, mpl_::int_<1> >'
   typedef typename boost::mpl::at<internal::FieldGetters_Map, Kind>::type GetterType;
                                                                           ^~~~~~~~~~
In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:40:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:431:25: error: no type named 'type' in 'struct boost::mpl::at<int, mpl_::int_<1> >'
   BOOST_STATIC_ASSERT(!(boost::is_same<GetterType, boost::mpl::void_>::value));
                        ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:36:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/usr/include/boost/mpl/at.hpp: In instantiation of 'struct boost::mpl::at<int, mpl_::int_<2> >':
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:428:75:   required from 'T otb::ogr::Field::GetValue() const [with T = double]'
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:150:34:   required from here
/usr/include/boost/mpl/at.hpp:31:8: error: no class template named 'apply' in 'struct boost::mpl::at_impl<boost::mpl::non_sequence_tag>'
 struct at
        ^~
In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx: In instantiation of 'T otb::ogr::Field::GetValue() const [with T = double]':
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:150:34:   required from here
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:428:75: error: no type named 'type' in 'struct boost::mpl::at<int, mpl_::int_<2> >'
   typedef typename boost::mpl::at<internal::FieldGetters_Map, Kind>::type GetterType;
                                                                           ^~~~~~~~~~
In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:40:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:431:25: error: no type named 'type' in 'struct boost::mpl::at<int, mpl_::int_<2> >'
   BOOST_STATIC_ASSERT(!(boost::is_same<GetterType, boost::mpl::void_>::value));
                        ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:36:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/usr/include/boost/mpl/at.hpp: In instantiation of 'struct boost::mpl::at<int, mpl_::int_<3> >':
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:428:75:   required from 'T otb::ogr::Field::GetValue() const [with T = std::vector<double>]'
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:154:56:   required from here
/usr/include/boost/mpl/at.hpp:31:8: error: no class template named 'apply' in 'struct boost::mpl::at_impl<boost::mpl::non_sequence_tag>'
 struct at
        ^~
In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx: In instantiation of 'T otb::ogr::Field::GetValue() const [with T = std::vector<double>]':
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:154:56:   required from here
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:428:75: error: no type named 'type' in 'struct boost::mpl::at<int, mpl_::int_<3> >'
   typedef typename boost::mpl::at<internal::FieldGetters_Map, Kind>::type GetterType;
                                                                           ^~~~~~~~~~
In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:40:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:431:25: error: no type named 'type' in 'struct boost::mpl::at<int, mpl_::int_<3> >'
   BOOST_STATIC_ASSERT(!(boost::is_same<GetterType, boost::mpl::void_>::value));
                        ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:36:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/usr/include/boost/mpl/at.hpp: In instantiation of 'struct boost::mpl::at<int, mpl_::int_<4> >':
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:428:75:   required from 'T otb::ogr::Field::GetValue() const [with T = std::__cxx11::basic_string<char>]'
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:157:39:   required from here
/usr/include/boost/mpl/at.hpp:31:8: error: no class template named 'apply' in 'struct boost::mpl::at_impl<boost::mpl::non_sequence_tag>'
 struct at
        ^~
In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx: In instantiation of 'T otb::ogr::Field::GetValue() const [with T = std::__cxx11::basic_string<char>]':
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:157:39:   required from here
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:428:75: error: no type named 'type' in 'struct boost::mpl::at<int, mpl_::int_<4> >'
   typedef typename boost::mpl::at<internal::FieldGetters_Map, Kind>::type GetterType;
                                                                           ^~~~~~~~~~
In file included from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:40:0,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.h:225,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFeatureWrapper.h:34,
                 from /build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/src/otbOGRFieldWrapper.cxx:38:
/build/otb-6.4.0+dfsg/Modules/Adapters/GdalAdapters/include/otbOGRFieldWrapper.txx:431:25: error: no type named 'type' in 'struct boost::mpl::at<int, mpl_::int_<4> >'
   BOOST_STATIC_ASSERT(!(boost::is_same<GetterType, boost::mpl::void_>::value));
                        ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[3]: *** [Modules/Adapters/GdalAdapters/src/CMakeFiles/OTBGdalAdapters.dir/build.make:66: Modules/Adapters/GdalAdapters/src/CMakeFiles/OTBGdalAdapters.dir/otbOGRFieldWrapper.cxx.o] Error 1

The full buildlog is attached: otb_6.4.0+dfsg-2_amd64.build

Steps to reproduce

Rebuild the otb (6.4.0+dfsg-1) package from Debian unstable with gdal (2.3.0beta1+dfsg-2exp1) from Debian experimental.

Or build from source and ensure to include the gdal_csv.h fix:

https://github.com/OSGeo/gdal/commit/ae9da1ad7e51cfd4ec714b07cc1296d99964d27b

Configuration information

Debian unstable (amd64), otb (6.4.0+dfsg-2) from git (https://salsa.debian.org/debian-gis-team/otb)