Skip to content

vtkPDALReader fails to compile

Getting this building VTK 9.3.0.rc2 on Fedora rawhide with PDAL 2.6.0:

[ 54%] Building CXX object IO/PDAL/CMakeFiles/IOPDAL.dir/vtkPDALReader.cxx.o
cd /builddir/build/BUILD/VTK-9.3.0.rc2/redhat-linux-build-serial/IO/PDAL && /usr/bin/g++ -DIOPDAL_EXPORTS -Dkiss_fft_scalar=double -I/builddir/build/BUILD/VTK-9.3.0.rc2/redhat-linux-build-serial/IO/PDAL -I/builddir/build/BUILD/VTK-9.3.0.rc2/IO/PDAL -I/builddir/build/BUILD/VTK-9.3.0.rc2/redhat-linux-build-serial/Common/Core -I/builddir/build/BUILD/VTK-9.3.0.rc2/Common/Core -I/builddir/build/BUILD/VTK-9.3.0.rc2/redhat-linux-build-serial/Common/ExecutionModel -I/builddir/build/BUILD/VTK-9.3.0.rc2/Common/ExecutionModel -I/builddir/build/BUILD/VTK-9.3.0.rc2/redhat-linux-build-serial/Common/DataModel -I/builddir/build/BUILD/VTK-9.3.0.rc2/Common/DataModel -I/builddir/build/BUILD/VTK-9.3.0.rc2/redhat-linux-build-serial/Common/Math -I/builddir/build/BUILD/VTK-9.3.0.rc2/Common/Math -I/builddir/build/BUILD/VTK-9.3.0.rc2/redhat-linux-build-serial/ThirdParty/kissfft/vtkkissfft -I/builddir/build/BUILD/VTK-9.3.0.rc2/ThirdParty/kissfft/vtkkissfft -I/builddir/build/BUILD/VTK-9.3.0.rc2/redhat-linux-build-serial/Common/Transforms -I/builddir/build/BUILD/VTK-9.3.0.rc2/Common/Transforms -I/builddir/build/BUILD/VTK-9.3.0.rc2/redhat-linux-build-serial/Filters/General -I/builddir/build/BUILD/VTK-9.3.0.rc2/Filters/General -I/builddir/build/BUILD/VTK-9.3.0.rc2/redhat-linux-build-serial/Common/Misc -I/builddir/build/BUILD/VTK-9.3.0.rc2/Common/Misc -I/builddir/build/BUILD/VTK-9.3.0.rc2/redhat-linux-build-serial/Filters/Core -I/builddir/build/BUILD/VTK-9.3.0.rc2/Filters/Core -isystem /builddir/build/BUILD/VTK-9.3.0.rc2/redhat-linux-build-serial/Utilities/KWIML -isystem /builddir/build/BUILD/VTK-9.3.0.rc2/Utilities/KWIML -isystem /builddir/build/BUILD/VTK-9.3.0.rc2/redhat-linux-build-serial/Utilities/KWSys -isystem /builddir/build/BUILD/VTK-9.3.0.rc2/Utilities/KWSys -isystem /builddir/build/BUILD/VTK-9.3.0.rc2/redhat-linux-build-serial/ThirdParty/kissfft -isystem /builddir/build/BUILD/VTK-9.3.0.rc2/ThirdParty/kissfft -O2  -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64   -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -D_UNICODE -DHAVE_UINTPTR_T  -g -std=c++11 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT IO/PDAL/CMakeFiles/IOPDAL.dir/vtkPDALReader.cxx.o -MF CMakeFiles/IOPDAL.dir/vtkPDALReader.cxx.o.d -o CMakeFiles/IOPDAL.dir/vtkPDALReader.cxx.o -c /builddir/build/BUILD/VTK-9.3.0.rc2/IO/PDAL/vtkPDALReader.cxx
gmake[2]: Leaving directory '/builddir/build/BUILD/VTK-9.3.0.rc2/redhat-linux-build-serial'
In file included from /usr/include/pdal/DimUtil.hpp:40,
                 from /usr/include/pdal/Dimension.hpp:9,
                 from /usr/include/pdal/Stage.hpp:39,
                 from /usr/include/pdal/Reader.hpp:37,
                 from /builddir/build/BUILD/VTK-9.3.0.rc2/IO/PDAL/vtkPDALReader.cxx:33:
/usr/include/pdal/util/Utils.hpp:975:31: error: ‘std::enable_if_t’ has not been declared
  975 |     template<typename T, std::enable_if_t<!std::is_integral<T>::value>* = nullptr>
      |                               ^~~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:975:42: error: expected ‘>’ before ‘<’ token
  975 |     template<typename T, std::enable_if_t<!std::is_integral<T>::value>* = nullptr>
      |                                          ^
/usr/include/pdal/util/Utils.hpp:994:31: error: ‘std::enable_if_t’ has not been declared
  994 |     template<typename T, std::enable_if_t<std::is_integral<T>::value>* = nullptr>
      |                               ^~~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:994:42: error: expected ‘>’ before ‘<’ token
  994 |     template<typename T, std::enable_if_t<std::is_integral<T>::value>* = nullptr>
      |                                          ^
/usr/include/pdal/util/Utils.hpp:995:22: error: redefinition of ‘template<class T, <typeprefixerror><anonymous> > pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T&)’
  995 |     StatusWithReason fromString(const std::string& from, T& to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:976:22: note: ‘template<class T, <typeprefixerror><anonymous> > pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T&)’ previously declared here
  976 |     StatusWithReason fromString(const std::string& from, T& to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:1012:29: error: template-id ‘fromString<>’ for ‘pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, std::string&)’ does not match any template declaration
 1012 |     inline StatusWithReason fromString(const std::string& from, std::string& to)
      |                             ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:976:22: note: candidates are: ‘template<class T, <typeprefixerror><anonymous> > pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T&)’
  976 |     StatusWithReason fromString(const std::string& from, T& to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:953:22: note:                 ‘template<class T> pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T*&)’
  953 |     StatusWithReason fromString(const std::string& from, T* & to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:1026:29: error: template-id ‘fromString<>’ for ‘pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, char&)’ does not match any template declaration
 1026 |     inline StatusWithReason fromString(const std::string& s, char& to)
      |                             ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:976:22: note: candidates are: ‘template<class T, <typeprefixerror><anonymous> > pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T&)’
  976 |     StatusWithReason fromString(const std::string& from, T& to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:953:22: note:                 ‘template<class T> pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T*&)’
  953 |     StatusWithReason fromString(const std::string& from, T* & to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:1057:29: error: template-id ‘fromString<>’ for ‘pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, unsigned char&)’ does not match any template declaration
 1057 |     inline StatusWithReason fromString(const std::string& s, unsigned char& to)
      |                             ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:976:22: note: candidates are: ‘template<class T, <typeprefixerror><anonymous> > pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T&)’
  976 |     StatusWithReason fromString(const std::string& from, T& to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:953:22: note:                 ‘template<class T> pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T*&)’
  953 |     StatusWithReason fromString(const std::string& from, T* & to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:1089:29: error: template-id ‘fromString<>’ for ‘pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, signed char&)’ does not match any template declaration
 1089 |     inline StatusWithReason fromString(const std::string& s, signed char& to)
      |                             ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:976:22: note: candidates are: ‘template<class T, <typeprefixerror><anonymous> > pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T&)’
  976 |     StatusWithReason fromString(const std::string& from, T& to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:953:22: note:                 ‘template<class T> pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T*&)’
  953 |     StatusWithReason fromString(const std::string& from, T* & to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:1120:29: error: template-id ‘fromString<>’ for ‘pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, double&)’ does not match any template declaration
 1120 |     inline StatusWithReason fromString(const std::string& s, double& d)
      |                             ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:976:22: note: candidates are: ‘template<class T, <typeprefixerror><anonymous> > pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T&)’
  976 |     StatusWithReason fromString(const std::string& from, T& to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:953:22: note:                 ‘template<class T> pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T*&)’
  953 |     StatusWithReason fromString(const std::string& from, T* & to)
      |                      ^~~~~~~~~~
In file included from /usr/include/pdal/Dimension.hpp:10:
/usr/include/pdal/pdal_types.hpp: In member function ‘bool pdal::XForm::XFormComponent::set(const std::string&)’:
/usr/include/pdal/pdal_types.hpp:156:48: error: no matching function for call to ‘fromString(const std::string&, double&)’
  156 |                     failed = !Utils::fromString(sval, m_val);
      |                               ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:953:22: note: candidate: ‘template<class T> pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T*&)’
  953 |     StatusWithReason fromString(const std::string& from, T* & to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:953:22: note:   template argument deduction/substitution failed:
/usr/include/pdal/pdal_types.hpp:156:48: note:   mismatched types ‘T*’ and ‘double’
  156 |                     failed = !Utils::fromString(sval, m_val);
      |                               ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:976:22: note: candidate: ‘template<class T, <typeprefixerror><anonymous> > pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T&)’
  976 |     StatusWithReason fromString(const std::string& from, T& to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:976:22: note:   template argument deduction/substitution failed:
/usr/include/pdal/pdal_types.hpp:156:48: note:   couldn’t deduce template parameter ‘<anonymous>’
  156 |                     failed = !Utils::fromString(sval, m_val);
      |                               ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
In file included from /usr/include/pdal/Metadata.hpp:39,
                 from /usr/include/pdal/Stage.hpp:42:
/usr/include/pdal/util/Bounds.hpp: At global scope:
/usr/include/pdal/util/Bounds.hpp:738:29: error: template-id ‘fromString<>’ for ‘pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, pdal::BOX2D&)’ does not match any template declaration
  738 |     inline StatusWithReason fromString(const std::string& s, BOX2D& bounds)
      |                             ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:976:22: note: candidates are: ‘template<class T, <typeprefixerror><anonymous> > pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T&)’
  976 |     StatusWithReason fromString(const std::string& from, T& to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:953:22: note:                 ‘template<class T> pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T*&)’
  953 |     StatusWithReason fromString(const std::string& from, T* & to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Bounds.hpp:755:29: error: template-id ‘fromString<>’ for ‘pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, pdal::BOX3D&)’ does not match any template declaration
  755 |     inline StatusWithReason fromString(const std::string& s, BOX3D& bounds)
      |                             ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:976:22: note: candidates are: ‘template<class T, <typeprefixerror><anonymous> > pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T&)’
  976 |     StatusWithReason fromString(const std::string& from, T& to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:953:22: note:                 ‘template<class T> pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T*&)’
  953 |     StatusWithReason fromString(const std::string& from, T* & to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Bounds.hpp:772:29: error: template-id ‘fromString<>’ for ‘pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, pdal::Bounds&)’ does not match any template declaration
  772 |     inline StatusWithReason fromString(const std::string& s, Bounds& bounds)
      |                             ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:976:22: note: candidates are: ‘template<class T, <typeprefixerror><anonymous> > pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T&)’
  976 |     StatusWithReason fromString(const std::string& from, T& to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:953:22: note:                 ‘template<class T> pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T*&)’
  953 |     StatusWithReason fromString(const std::string& from, T* & to)
      |                      ^~~~~~~~~~
/usr/include/pdal/Metadata.hpp: In function ‘T pdal::MetadataDetail::value(const std::string&, const std::string&) [with T = bool; std::string = std::__cxx11::basic_string<char>]’:
/usr/include/pdal/Metadata.hpp:398:27: error: no matching function for call to ‘fromString(const std::string&, bool&)’
  398 |     if (!Utils::fromString(value, b))
      |          ~~~~~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:953:22: note: candidate: ‘template<class T> pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T*&)’
  953 |     StatusWithReason fromString(const std::string& from, T* & to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:953:22: note:   template argument deduction/substitution failed:
/usr/include/pdal/Metadata.hpp:398:27: note:   mismatched types ‘T*’ and ‘bool’
  398 |     if (!Utils::fromString(value, b))
      |          ~~~~~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:976:22: note: candidate: ‘template<class T, <typeprefixerror><anonymous> > pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T&)’
  976 |     StatusWithReason fromString(const std::string& from, T& to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:976:22: note:   template argument deduction/substitution failed:
/usr/include/pdal/Metadata.hpp:398:27: note:   couldn’t deduce template parameter ‘<anonymous>’
  398 |     if (!Utils::fromString(value, b))
      |          ~~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from /usr/include/pdal/Kernel.hpp:46,
                 from /usr/include/pdal/PluginHelper.hpp:43,
                 from /usr/include/pdal/Stage.hpp:45:
/usr/include/pdal/util/ProgramArgs.hpp: In instantiation of ‘void pdal::TArg<T>::setValue(const std::string&) [with T = std::__cxx11::basic_string<char>; std::string = std::__cxx11::basic_string<char>]’:
/usr/include/pdal/util/ProgramArgs.hpp:400:18:   required from here
/usr/include/pdal/util/ProgramArgs.hpp:414:40: error: no matching function for call to ‘fromString(const std::string&, std::__cxx11::basic_string<char>&)’
  414 |         auto status = Utils::fromString(s, m_var);
      |                       ~~~~~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:953:22: note: candidate: ‘template<class T> pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T*&)’
  953 |     StatusWithReason fromString(const std::string& from, T* & to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:953:22: note:   template argument deduction/substitution failed:
/usr/include/pdal/util/ProgramArgs.hpp:414:40: note:   mismatched types ‘T*’ and ‘std::__cxx11::basic_string<char>’
  414 |         auto status = Utils::fromString(s, m_var);
      |                       ~~~~~~~~~~~~~~~~~^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:976:22: note: candidate: ‘template<class T, <typeprefixerror><anonymous> > pdal::Utils::StatusWithReason pdal::Utils::fromString(const std::string&, T&)’
  976 |     StatusWithReason fromString(const std::string& from, T& to)
      |                      ^~~~~~~~~~
/usr/include/pdal/util/Utils.hpp:976:22: note:   template argument deduction/substitution failed:
/usr/include/pdal/util/ProgramArgs.hpp:414:40: note:   couldn’t deduce template parameter ‘<anonymous>’
  414 |         auto status = Utils::fromString(s, m_var);
      |                       ~~~~~~~~~~~~~~~~~^~~~~~~~~~
gmake[2]: *** [IO/PDAL/CMakeFiles/IOPDAL.dir/build.make:79: IO/PDAL/CMakeFiles/IOPDAL.dir/vtkPDALReader.cxx.o] Error 1