<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <font size="2" face="DejaVu Sans Mono">Hi<br>
      <br>
      I seek help in understanding errors (see excerpt below) I am
      currently experiencing while building QGIS master in a fresh
      openSUSE Tumbleweed install. These errors seem to originate in
      nlohmann json. I am used to compile QGIS from source but never
      seen these errors before and have trouble figuring out where they
      originate and what a possible solution could be.<br>
      <br>
    </font><font size="2" face="DejaVu Sans Mono">I am using Qt 6.9.0,
      and tried compiling using both GCC 14 and 15. Passing the CXX flag
      "-std=c++17" does not seem to help. I tried using NLOHMANN both
      internal and also using the latest version compiled locally (3.12,
      as in error log below) but both fail in a similar way.</font><br>
    <font size="2" face="DejaVu Sans Mono"><br>
    </font><font size="2" face="DejaVu Sans Mono">I compiled QGIS master
      as late as 6 april without problems in a previous openSUSE
      install. </font><font size="2" face="DejaVu Sans Mono">There is a
      very real the possibility that recent changes in GCC14 and 15
      regarding required standards are playing a part here, as well as
      packaging changes in openSUSE Tumbleweed. However, as I am unsure
      what the cause may be I would like to ask the developers if these
      errors look familiar to you and if they suggest something.<br>
      <br>
      Thanks in advance<br>
      <br>
      Hernán<br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      [ 12%] Built target staged-plugins-on-build<br>
      In file included from
      /usr/local/src/QGIS/external/nlohmann/detail/value_t.hpp:16,<br>
                       from
      /usr/local/src/QGIS/external/nlohmann/detail/exceptions.hpp:20,<br>
                       from
/usr/local/src/QGIS/external/nlohmann/detail/conversions/from_json.hpp:23,<br>
                       from
      /usr/local/src/QGIS/external/nlohmann/adl_serializer.hpp:14,<br>
                       from
      /usr/local/src/QGIS/external/nlohmann/json.hpp:34,<br>
                       from
      /usr/local/src/QGIS/external/pdal_wrench/vpc.cpp:26:<br>
/usr/local/src/QGIS/external/nlohmann/detail/macro_scope.hpp:257:63:
      error: wrong number of template arguments (11, should be at least
      0)<br>
        257 |     AllocatorType, JSONSerializer, BinaryType,
      CustomBaseClass><br>
           
      |                                                               ^<br>
/usr/local/src/QGIS/external/nlohmann/detail/meta/type_traits.hpp:53:22:
      note: in expansion of macro ‘NLOHMANN_BASIC_JSON_TPL’<br>
         53 | struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> :
      std::true_type {};<br>
            |                      ^~~~~~~~~~~~~~~~~~~~~~~<br>
      In file included from /usr/local/include/pdal/PDALUtils.hpp:39,<br>
                       from /usr/local/include/pdal/PointRef.hpp:37,<br>
                       from /usr/local/include/pdal/Geometry.hpp:37,<br>
                       from
      /usr/local/src/QGIS/external/pdal_wrench/vpc.hpp:18,<br>
                       from
      /usr/local/src/QGIS/external/pdal_wrench/vpc.cpp:19:<br>
      /usr/local/include/pdal/JsonFwd.hpp:40:7: note: provided for
      ‘template<template<class U, class V, class ... Args>
      class ObjectType, template<class U, class ... Args> class
      ArrayType, class StringType, class BooleanType, class
      NumberIntegerType, class NumberUnsignedType, class
      NumberFloatType, template<class U> class AllocatorType,
      template<class T, class SFINAE> class JSONSerializer, class
      BinaryType> class nlohmann::basic_json’<br>
         40 | class basic_json;<br>
            |       ^~~~~~~~~~<br>
      In file included from
      /usr/local/src/QGIS/external/nlohmann/detail/exceptions.hpp:25:<br>
/usr/local/src/QGIS/external/nlohmann/detail/meta/type_traits.hpp:53:45:
      error: template argument 1 is invalid<br>
         53 | struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> :
      std::true_type {};<br>
            |                                             ^<br>
/usr/local/src/QGIS/external/nlohmann/detail/macro_scope.hpp:257:63:
      error: wrong number of template arguments (11, should be at least
      0)<br>
        257 |     AllocatorType, JSONSerializer, BinaryType,
      CustomBaseClass><br>
           
      |                                                               ^<br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:51:28:
      note: in expansion of macro ‘NLOHMANN_BASIC_JSON_TPL’<br>
         51 |     struct string_t_helper<NLOHMANN_BASIC_JSON_TPL><br>
            |                            ^~~~~~~~~~~~~~~~~~~~~~~<br>
      /usr/local/include/pdal/JsonFwd.hpp:40:7: note: provided for
      ‘template<template<class U, class V, class ... Args>
      class ObjectType, template<class U, class ... Args> class
      ArrayType, class StringType, class BooleanType, class
      NumberIntegerType, class NumberUnsignedType, class
      NumberFloatType, template<class U> class AllocatorType,
      template<class T, class SFINAE> class JSONSerializer, class
      BinaryType> class nlohmann::basic_json’<br>
         40 | class basic_json;<br>
            |       ^~~~~~~~~~<br>
      In file included from
      /usr/local/src/QGIS/external/nlohmann/json.hpp:50:<br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:51:51:
      error: template argument 1 is invalid<br>
         51 |     struct string_t_helper<NLOHMANN_BASIC_JSON_TPL><br>
            |                                                   ^<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:104:30: error:
      reference to ‘json_pointer’ is ambiguous<br>
        104 |     friend class ::nlohmann::json_pointer;<br>
            |                              ^~~~~~~~~~~~<br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7:
      note: candidates are: ‘template<class RefStringType> class
      nlohmann::json_abi_v3_11_3::json_pointer’<br>
         35 | class json_pointer<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/include/pdal/JsonFwd.hpp:45:7: note:                
      ‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
         45 | class json_pointer;<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:166:26: error:
      reference to ‘json_pointer’ is ambiguous<br>
        166 |     using json_pointer =
      ::nlohmann::json_pointer<StringType>;<br>
            |                          ^~<br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7:
      note: candidates are: ‘template<class RefStringType> class
      nlohmann::json_abi_v3_11_3::json_pointer’<br>
         35 | class json_pointer<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/include/pdal/JsonFwd.hpp:45:7: note:                
      ‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
         45 | class json_pointer;<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:2327:21: error:
      missing template argument list after
      ‘nlohmann::json_abi_v3_11_3::json_pointer’; template placeholder
      not permitted in parameter<br>
       2327 |     ValueType value(const json_pointer& ptr, const
      ValueType& default_value) const<br>
            |                     ^~~~~<br>
            |                          <><br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7:
      note: ‘template<class RefStringType> class
      nlohmann::json_abi_v3_11_3::json_pointer’ declared here<br>
         35 | class json_pointer<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:2352:22: error:
      missing template argument list after
      ‘nlohmann::json_abi_v3_11_3::json_pointer’; template placeholder
      not permitted in parameter<br>
       2352 |     ReturnType value(const json_pointer& ptr,
      ValueType && default_value) const<br>
            |                      ^~~~~<br>
            |                           <><br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7:
      note: ‘template<class RefStringType> class
      nlohmann::json_abi_v3_11_3::json_pointer’ declared here<br>
         35 | class json_pointer<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:2376:27: error:
      reference to ‘json_pointer’ is ambiguous<br>
       2376 |     ValueType value(const
      ::nlohmann::json_pointer<BasicJsonType>& ptr, const
      ValueType& default_value) const<br>
            |                           ^~<br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7:
      note: candidates are: ‘template<class RefStringType> class
      nlohmann::json_abi_v3_11_3::json_pointer’<br>
         35 | class json_pointer<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/include/pdal/JsonFwd.hpp:45:7: note:                
      ‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
         45 | class json_pointer;<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:2376:51: error:
      expected ‘,’ or ‘...’ before ‘<’ token<br>
       2376 |     ValueType value(const
      ::nlohmann::json_pointer<BasicJsonType>& ptr, const
      ValueType& default_value) const<br>
            |                                                   ^<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:2387:28: error:
      reference to ‘json_pointer’ is ambiguous<br>
       2387 |     ReturnType value(const
      ::nlohmann::json_pointer<BasicJsonType>& ptr, ValueType
      && default_value) const<br>
            |                            ^~<br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7:
      note: candidates are: ‘template<class RefStringType> class
      nlohmann::json_abi_v3_11_3::json_pointer’<br>
         35 | class json_pointer<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/include/pdal/JsonFwd.hpp:45:7: note:                
      ‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
         45 | class json_pointer;<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:2387:52: error:
      expected ‘,’ or ‘...’ before ‘<’ token<br>
       2387 |     ReturnType value(const
      ::nlohmann::json_pointer<BasicJsonType>& ptr, ValueType
      && default_value) const<br>
            |                                                    ^<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:2745:19: error:
      missing template argument list after
      ‘nlohmann::json_abi_v3_11_3::json_pointer’; template placeholder
      not permitted in parameter<br>
       2745 |     bool contains(const json_pointer& ptr) const<br>
            |                   ^~~~~<br>
            |                        <><br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7:
      note: ‘template<class RefStringType> class
      nlohmann::json_abi_v3_11_3::json_pointer’ declared here<br>
         35 | class json_pointer<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:2752:46: error:
      reference to ‘json_pointer’ is ambiguous<br>
       2752 |     bool contains(const typename
      ::nlohmann::json_pointer<BasicJsonType>& ptr) const<br>
            |                                              ^~~~~~~~~~~~<br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7:
      note: candidates are: ‘template<class RefStringType> class
      nlohmann::json_abi_v3_11_3::json_pointer’<br>
         35 | class json_pointer<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/include/pdal/JsonFwd.hpp:45:7: note:                
      ‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
         45 | class json_pointer;<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:2752:58: error:
      expected ‘,’ or ‘...’ before ‘<’ token<br>
       2752 |     bool contains(const typename
      ::nlohmann::json_pointer<BasicJsonType>& ptr) const<br>
            |                                                          ^<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:4618:26: error:
      missing template argument list after
      ‘nlohmann::json_abi_v3_11_3::json_pointer’; template placeholder
      not permitted in parameter<br>
       4618 |     reference operator[](const json_pointer& ptr)<br>
            |                          ^~~~~<br>
            |                               <><br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7:
      note: ‘template<class RefStringType> class
      nlohmann::json_abi_v3_11_3::json_pointer’ declared here<br>
         35 | class json_pointer<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:4618:15: error:
      ‘nlohmann::json_abi_v3_11_3::basic_json<ObjectType, ArrayType,
      StringType, BooleanType, NumberIntegerType, NumberUnsignedType,
      NumberFloatType, AllocatorType, JSONSerializer, BinaryType,
      CustomBaseClass>::value_type&
      nlohmann::json_abi_v3_11_3::basic_json<ObjectType, ArrayType,
      StringType, BooleanType, NumberIntegerType, NumberUnsignedType,
      NumberFloatType, AllocatorType, JSONSerializer, BinaryType,
      CustomBaseClass>::operator[](...)’ must not have variable
      number of arguments<br>
       4618 |     reference operator[](const json_pointer& ptr)<br>
            |               ^~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:4625:32: error:
      reference to ‘json_pointer’ is ambiguous<br>
       4625 |     reference operator[](const
      ::nlohmann::json_pointer<BasicJsonType>& ptr)<br>
            |                                ^~<br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7:
      note: candidates are: ‘template<class RefStringType> class
      nlohmann::json_abi_v3_11_3::json_pointer’<br>
         35 | class json_pointer<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/include/pdal/JsonFwd.hpp:45:7: note:                
      ‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
         45 | class json_pointer;<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:4625:56: error:
      expected ‘,’ or ‘...’ before ‘<’ token<br>
       4625 |     reference operator[](const
      ::nlohmann::json_pointer<BasicJsonType>& ptr)<br>
            |                                                        ^<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:4632:32: error:
      missing template argument list after
      ‘nlohmann::json_abi_v3_11_3::json_pointer’; template placeholder
      not permitted in parameter<br>
       4632 |     const_reference operator[](const json_pointer&
      ptr) const<br>
            |                                ^~~~~<br>
            |                                     <><br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7:
      note: ‘template<class RefStringType> class
      nlohmann::json_abi_v3_11_3::json_pointer’ declared here<br>
         35 | class json_pointer<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:4632:21: error:
      ‘const nlohmann::json_abi_v3_11_3::basic_json<ObjectType,
      ArrayType, StringType, BooleanType, NumberIntegerType,
      NumberUnsignedType, NumberFloatType, AllocatorType,
      JSONSerializer, BinaryType, CustomBaseClass>::value_type&
      nlohmann::json_abi_v3_11_3::basic_json<ObjectType, ArrayType,
      StringType, BooleanType, NumberIntegerType, NumberUnsignedType,
      NumberFloatType, AllocatorType, JSONSerializer, BinaryType,
      CustomBaseClass>::operator[](...) const’ must not have variable
      number of arguments<br>
       4632 |     const_reference operator[](const json_pointer&
      ptr) const<br>
            |                     ^~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:4639:38: error:
      reference to ‘json_pointer’ is ambiguous<br>
       4639 |     const_reference operator[](const
      ::nlohmann::json_pointer<BasicJsonType>& ptr) const<br>
            |                                      ^~<br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7:
      note: candidates are: ‘template<class RefStringType> class
      nlohmann::json_abi_v3_11_3::json_pointer’<br>
         35 | class json_pointer<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/include/pdal/JsonFwd.hpp:45:7: note:                
      ‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
         45 | class json_pointer;<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:4639:62: error:
      expected ‘,’ or ‘...’ before ‘<’ token<br>
       4639 |     const_reference operator[](const
      ::nlohmann::json_pointer<BasicJsonType>& ptr) const<br>
           
      |                                                              ^<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:4646:18: error:
      missing template argument list after
      ‘nlohmann::json_abi_v3_11_3::json_pointer’; template placeholder
      not permitted in parameter<br>
       4646 |     reference at(const json_pointer& ptr)<br>
            |                  ^~~~~<br>
            |                       <><br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7:
      note: ‘template<class RefStringType> class
      nlohmann::json_abi_v3_11_3::json_pointer’ declared here<br>
         35 | class json_pointer<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:4653:24: error:
      reference to ‘json_pointer’ is ambiguous<br>
       4653 |     reference at(const
      ::nlohmann::json_pointer<BasicJsonType>& ptr)<br>
            |                        ^~<br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7:
      note: candidates are: ‘template<class RefStringType> class
      nlohmann::json_abi_v3_11_3::json_pointer’<br>
         35 | class json_pointer<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/include/pdal/JsonFwd.hpp:45:7: note:                
      ‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
         45 | class json_pointer;<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:4653:48: error:
      expected ‘,’ or ‘...’ before ‘<’ token<br>
       4653 |     reference at(const
      ::nlohmann::json_pointer<BasicJsonType>& ptr)<br>
            |                                                ^<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:4660:24: error:
      missing template argument list after
      ‘nlohmann::json_abi_v3_11_3::json_pointer’; template placeholder
      not permitted in parameter<br>
       4660 |     const_reference at(const json_pointer& ptr) const<br>
            |                        ^~~~~<br>
            |                             <><br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7:
      note: ‘template<class RefStringType> class
      nlohmann::json_abi_v3_11_3::json_pointer’ declared here<br>
         35 | class json_pointer<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:4667:30: error:
      reference to ‘json_pointer’ is ambiguous<br>
       4667 |     const_reference at(const
      ::nlohmann::json_pointer<BasicJsonType>& ptr) const<br>
            |                              ^~<br>
/usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:35:7:
      note: candidates are: ‘template<class RefStringType> class
      nlohmann::json_abi_v3_11_3::json_pointer’<br>
         35 | class json_pointer<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/include/pdal/JsonFwd.hpp:45:7: note:                
      ‘template<class BasicJsonType> class nlohmann::json_pointer’<br>
         45 | class json_pointer;<br>
            |       ^~~~~~~~~~~~<br>
      /usr/local/src/QGIS/external/nlohmann/json.hpp:4667:54: error:
      expected ‘,’ or ‘...’ before ‘<’ token<br>
       4667 |     const_reference at(const
      ::nlohmann::json_pointer<BasicJsonType>& ptr) const<br>
            |                                                      ^<br>
      <br>
    </font>
  </body>
</html>