Hi Hernan,

Nlohmann json got updated to 3.11.3 in
https://github.com/qgis/QGIS/pull/61597 a few days ago, maybe you could try
building master before that?

Best

Stefanos

On Tue, Apr 29, 2025, 10:04 AM Hernán De Angelis via QGIS-Developer <
qgis-developer@lists.osgeo.org> wrote:

> Hi
>
> 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.
>
> 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.
>
> I compiled QGIS master as late as 6 april without problems in a previous
> openSUSE install. 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.
>
> Thanks in advance
>
> Hernán
>
>
>
>
>
>
>
>
> [ 12%] Built target staged-plugins-on-build
> In file included from
> /usr/local/src/QGIS/external/nlohmann/detail/value_t.hpp:16,
>                  from
> /usr/local/src/QGIS/external/nlohmann/detail/exceptions.hpp:20,
>                  from
> /usr/local/src/QGIS/external/nlohmann/detail/conversions/from_json.hpp:23,
>                  from
> /usr/local/src/QGIS/external/nlohmann/adl_serializer.hpp:14,
>                  from /usr/local/src/QGIS/external/nlohmann/json.hpp:34,
>                  from /usr/local/src/QGIS/external/pdal_wrench/vpc.cpp:26:
> /usr/local/src/QGIS/external/nlohmann/detail/macro_scope.hpp:257:63:
> error: wrong number of template arguments (11, should be at least 0)
>   257 |     AllocatorType, JSONSerializer, BinaryType, CustomBaseClass>
>       |                                                               ^
> /usr/local/src/QGIS/external/nlohmann/detail/meta/type_traits.hpp:53:22:
> note: in expansion of macro ‘NLOHMANN_BASIC_JSON_TPL’
>    53 | struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {};
>       |                      ^~~~~~~~~~~~~~~~~~~~~~~
> In file included from /usr/local/include/pdal/PDALUtils.hpp:39,
>                  from /usr/local/include/pdal/PointRef.hpp:37,
>                  from /usr/local/include/pdal/Geometry.hpp:37,
>                  from /usr/local/src/QGIS/external/pdal_wrench/vpc.hpp:18,
>                  from /usr/local/src/QGIS/external/pdal_wrench/vpc.cpp:19:
> /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’
>    40 | class basic_json;
>       |       ^~~~~~~~~~
> In file included from
> /usr/local/src/QGIS/external/nlohmann/detail/exceptions.hpp:25:
> /usr/local/src/QGIS/external/nlohmann/detail/meta/type_traits.hpp:53:45:
> error: template argument 1 is invalid
>    53 | struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {};
>       |                                             ^
> /usr/local/src/QGIS/external/nlohmann/detail/macro_scope.hpp:257:63:
> error: wrong number of template arguments (11, should be at least 0)
>   257 |     AllocatorType, JSONSerializer, BinaryType, CustomBaseClass>
>       |                                                               ^
> /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:51:28: note:
> in expansion of macro ‘NLOHMANN_BASIC_JSON_TPL’
>    51 |     struct string_t_helper<NLOHMANN_BASIC_JSON_TPL>
>       |                            ^~~~~~~~~~~~~~~~~~~~~~~
> /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’
>    40 | class basic_json;
>       |       ^~~~~~~~~~
> In file included from /usr/local/src/QGIS/external/nlohmann/json.hpp:50:
> /usr/local/src/QGIS/external/nlohmann/detail/json_pointer.hpp:51:51:
> error: template argument 1 is invalid
>    51 |     struct string_t_helper<NLOHMANN_BASIC_JSON_TPL>
>       |                                                   ^
> /usr/local/src/QGIS/external/nlohmann/json.hpp:104:30: error: reference to
> ‘json_pointer’ is ambiguous
>   104 |     friend class ::nlohmann::json_pointer;
>       |                              ^~~~~~~~~~~~
> /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’
>    35 | class json_pointer
>       |       ^~~~~~~~~~~~
> /usr/local/include/pdal/JsonFwd.hpp:45:7: note:
> ‘template<class BasicJsonType> class nlohmann::json_pointer’
>    45 | class json_pointer;
>       |       ^~~~~~~~~~~~
> /usr/local/src/QGIS/external/nlohmann/json.hpp:166:26: error: reference to
> ‘json_pointer’ is ambiguous
>   166 |     using json_pointer = ::nlohmann::json_pointer<StringType>;
>       |                          ^~
> /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’
>    35 | class json_pointer
>       |       ^~~~~~~~~~~~
> /usr/local/include/pdal/JsonFwd.hpp:45:7: note:
> ‘template<class BasicJsonType> class nlohmann::json_pointer’
>    45 | class json_pointer;
>       |       ^~~~~~~~~~~~
> /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
>  2327 |     ValueType value(const json_pointer& ptr, const ValueType&
> default_value) const
>       |                     ^~~~~
>       |                          <>
> /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
>    35 | class json_pointer
>       |       ^~~~~~~~~~~~
> /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
>  2352 |     ReturnType value(const json_pointer& ptr, ValueType &&
> default_value) const
>       |                      ^~~~~
>       |                           <>
> /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
>    35 | class json_pointer
>       |       ^~~~~~~~~~~~
> /usr/local/src/QGIS/external/nlohmann/json.hpp:2376:27: error: reference
> to ‘json_pointer’ is ambiguous
>  2376 |     ValueType value(const ::nlohmann::json_pointer<BasicJsonType>&
> ptr, const ValueType& default_value) const
>       |                           ^~
> /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’
>    35 | class json_pointer
>       |       ^~~~~~~~~~~~
> /usr/local/include/pdal/JsonFwd.hpp:45:7: note:
> ‘template<class BasicJsonType> class nlohmann::json_pointer’
>    45 | class json_pointer;
>       |       ^~~~~~~~~~~~
> /usr/local/src/QGIS/external/nlohmann/json.hpp:2376:51: error: expected
> ‘,’ or ‘...’ before ‘<’ token
>  2376 |     ValueType value(const ::nlohmann::json_pointer<BasicJsonType>&
> ptr, const ValueType& default_value) const
>       |                                                   ^
> /usr/local/src/QGIS/external/nlohmann/json.hpp:2387:28: error: reference
> to ‘json_pointer’ is ambiguous
>  2387 |     ReturnType value(const
> ::nlohmann::json_pointer<BasicJsonType>& ptr, ValueType && default_value)
> const
>       |                            ^~
> /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’
>    35 | class json_pointer
>       |       ^~~~~~~~~~~~
> /usr/local/include/pdal/JsonFwd.hpp:45:7: note:
> ‘template<class BasicJsonType> class nlohmann::json_pointer’
>    45 | class json_pointer;
>       |       ^~~~~~~~~~~~
> /usr/local/src/QGIS/external/nlohmann/json.hpp:2387:52: error: expected
> ‘,’ or ‘...’ before ‘<’ token
>  2387 |     ReturnType value(const
> ::nlohmann::json_pointer<BasicJsonType>& ptr, ValueType && default_value)
> const
>       |                                                    ^
> /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
>  2745 |     bool contains(const json_pointer& ptr) const
>       |                   ^~~~~
>       |                        <>
> /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
>    35 | class json_pointer
>       |       ^~~~~~~~~~~~
> /usr/local/src/QGIS/external/nlohmann/json.hpp:2752:46: error: reference
> to ‘json_pointer’ is ambiguous
>  2752 |     bool contains(const typename
> ::nlohmann::json_pointer<BasicJsonType>& ptr) const
>       |                                              ^~~~~~~~~~~~
> /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’
>    35 | class json_pointer
>       |       ^~~~~~~~~~~~
> /usr/local/include/pdal/JsonFwd.hpp:45:7: note:
> ‘template<class BasicJsonType> class nlohmann::json_pointer’
>    45 | class json_pointer;
>       |       ^~~~~~~~~~~~
> /usr/local/src/QGIS/external/nlohmann/json.hpp:2752:58: error: expected
> ‘,’ or ‘...’ before ‘<’ token
>  2752 |     bool contains(const typename
> ::nlohmann::json_pointer<BasicJsonType>& ptr) const
>       |                                                          ^
> /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
>  4618 |     reference operator[](const json_pointer& ptr)
>       |                          ^~~~~
>       |                               <>
> /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
>    35 | class json_pointer
>       |       ^~~~~~~~~~~~
> /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
>  4618 |     reference operator[](const json_pointer& ptr)
>       |               ^~~~~~~~
> /usr/local/src/QGIS/external/nlohmann/json.hpp:4625:32: error: reference
> to ‘json_pointer’ is ambiguous
>  4625 |     reference operator[](const
> ::nlohmann::json_pointer<BasicJsonType>& ptr)
>       |                                ^~
> /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’
>    35 | class json_pointer
>       |       ^~~~~~~~~~~~
> /usr/local/include/pdal/JsonFwd.hpp:45:7: note:
> ‘template<class BasicJsonType> class nlohmann::json_pointer’
>    45 | class json_pointer;
>       |       ^~~~~~~~~~~~
> /usr/local/src/QGIS/external/nlohmann/json.hpp:4625:56: error: expected
> ‘,’ or ‘...’ before ‘<’ token
>  4625 |     reference operator[](const
> ::nlohmann::json_pointer<BasicJsonType>& ptr)
>       |                                                        ^
> /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
>  4632 |     const_reference operator[](const json_pointer& ptr) const
>       |                                ^~~~~
>       |                                     <>
> /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
>    35 | class json_pointer
>       |       ^~~~~~~~~~~~
> /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
>  4632 |     const_reference operator[](const json_pointer& ptr) const
>       |                     ^~~~~~~~
> /usr/local/src/QGIS/external/nlohmann/json.hpp:4639:38: error: reference
> to ‘json_pointer’ is ambiguous
>  4639 |     const_reference operator[](const
> ::nlohmann::json_pointer<BasicJsonType>& ptr) const
>       |                                      ^~
> /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’
>    35 | class json_pointer
>       |       ^~~~~~~~~~~~
> /usr/local/include/pdal/JsonFwd.hpp:45:7: note:
> ‘template<class BasicJsonType> class nlohmann::json_pointer’
>    45 | class json_pointer;
>       |       ^~~~~~~~~~~~
> /usr/local/src/QGIS/external/nlohmann/json.hpp:4639:62: error: expected
> ‘,’ or ‘...’ before ‘<’ token
>  4639 |     const_reference operator[](const
> ::nlohmann::json_pointer<BasicJsonType>& ptr) const
>       |                                                              ^
> /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
>  4646 |     reference at(const json_pointer& ptr)
>       |                  ^~~~~
>       |                       <>
> /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
>    35 | class json_pointer
>       |       ^~~~~~~~~~~~
> /usr/local/src/QGIS/external/nlohmann/json.hpp:4653:24: error: reference
> to ‘json_pointer’ is ambiguous
>  4653 |     reference at(const ::nlohmann::json_pointer<BasicJsonType>&
> ptr)
>       |                        ^~
> /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’
>    35 | class json_pointer
>       |       ^~~~~~~~~~~~
> /usr/local/include/pdal/JsonFwd.hpp:45:7: note:
> ‘template<class BasicJsonType> class nlohmann::json_pointer’
>    45 | class json_pointer;
>       |       ^~~~~~~~~~~~
> /usr/local/src/QGIS/external/nlohmann/json.hpp:4653:48: error: expected
> ‘,’ or ‘...’ before ‘<’ token
>  4653 |     reference at(const ::nlohmann::json_pointer<BasicJsonType>&
> ptr)
>       |                                                ^
> /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
>  4660 |     const_reference at(const json_pointer& ptr) const
>       |                        ^~~~~
>       |                             <>
> /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
>    35 | class json_pointer
>       |       ^~~~~~~~~~~~
> /usr/local/src/QGIS/external/nlohmann/json.hpp:4667:30: error: reference
> to ‘json_pointer’ is ambiguous
>  4667 |     const_reference at(const
> ::nlohmann::json_pointer<BasicJsonType>& ptr) const
>       |                              ^~
> /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’
>    35 | class json_pointer
>       |       ^~~~~~~~~~~~
> /usr/local/include/pdal/JsonFwd.hpp:45:7: note:
> ‘template<class BasicJsonType> class nlohmann::json_pointer’
>    45 | class json_pointer;
>       |       ^~~~~~~~~~~~
> /usr/local/src/QGIS/external/nlohmann/json.hpp:4667:54: error: expected
> ‘,’ or ‘...’ before ‘<’ token
>  4667 |     const_reference at(const
> ::nlohmann::json_pointer<BasicJsonType>& ptr) const
>       |                                                      ^
>
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer@lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>
_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to