Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build failure using latest clang and GCC compilers #1020

Closed
xvitaly opened this issue Mar 21, 2018 · 14 comments
Closed

Build failure using latest clang and GCC compilers #1020

xvitaly opened this issue Mar 21, 2018 · 14 comments

Comments

@xvitaly
Copy link
Contributor

xvitaly commented Mar 21, 2018

Version:

-- The C compiler identification is Clang 6.0.0
-- The CXX compiler identification is Clang 6.0.0
-- Check for working C compiler: /usr/bin/clang
-- Check for working C compiler: /usr/bin/clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done

Trying to build latest commit of matrix-structs, but got this error:

[  2%] Building CXX object CMakeFiles/matrix_structs.dir/src/events.cpp.o
clang-6.0: warning: argument unused during compilation: '-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1' [-Wunused-command-line-argument]
clang-6.0: warning: argument unused during compilation: '-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1' [-Wunused-command-line-argument]
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:40:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/functional:49:
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:545:9: error: redefinition of '__not_overloaded<_Tp, _Up>'
        struct __not_overloaded<_Tp, _Up> : __not_overloaded2<_Tp, _Up> { };
               ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:531:9: note: previous definition is here
        struct __not_overloaded<_Tp, _Up, __void_t<
               ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:608:9: error: redefinition of '__not_overloaded<_Tp, _Up>'
        struct __not_overloaded<_Tp, _Up> : __not_overloaded2<_Tp, _Up> { };
               ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:594:9: note: previous definition is here
        struct __not_overloaded<_Tp, _Up, __void_t<
               ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:671:9: error: redefinition of '__not_overloaded<_Tp, _Up>'
        struct __not_overloaded<_Tp, _Up> : __not_overloaded2<_Tp, _Up> { };
               ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:657:9: note: previous definition is here
        struct __not_overloaded<_Tp, _Up, __void_t<
               ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:734:9: error: redefinition of '__not_overloaded<_Tp, _Up>'
        struct __not_overloaded<_Tp, _Up> : __not_overloaded2<_Tp, _Up> { };
               ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:720:9: note: previous definition is here
        struct __not_overloaded<_Tp, _Up, __void_t<
               ^
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:36:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/algorithm:60:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/utility:70:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_pair.h:59:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/move.h:55:
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/type_traits:149:26: error: implicit instantiation of undefined template 'std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, void>'
    : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type
                         ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:564:4: note: in instantiation of template class 'std::__and_<std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, void>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, const volatile void *>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, const volatile void *> >' requested here
                        __ptr_cmp<_Tp, _Up>{});
                        ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:2054:13: note: in instantiation of function template specialization 'std::less<void>::operator()<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &>' requested here
          __comp = _M_impl._M_key_compare(__k, _S_key(__x));
                   ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:2372:19: note: in instantiation of member function 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_get_insert_unique_pos' requested here
            auto __res = _M_get_insert_unique_pos(_S_key(__z));
                         ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_map.h:575:16: note: in instantiation of function template specialization 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_emplace_unique<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >' requested here
        { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); }
                      ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:3348:48: note: in instantiation of function template specialization 'std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::emplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >' requested here
                        result.m_value.object->emplace(std::move(key), std::move(value));
                                               ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:3205:9: note: in instantiation of member function 'nlohmann::detail::parser<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >::parse_internal' requested here
        parse_internal(true, result);
        ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:15692:74: note: in instantiation of member function 'nlohmann::detail::parser<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >::parse' requested here
        parser(detail::input_adapter(first, last), cb, allow_exceptions).parse(true, result);
                                                                         ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:17254:28: note: in instantiation of function template specialization 'nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>::parse<const char *, 0>' requested here
    return nlohmann::json::parse(s, s + n);
                           ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:590:9: note: template is declared here
        struct __not_overloaded;
               ^
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:53:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/map:60:
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:2065:11: error: no matching function for call to object of type 'std::less<void>'
      if (_M_impl._M_key_compare(_S_key(__j._M_node), __k))
          ^~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:2372:19: note: in instantiation of member function 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_get_insert_unique_pos' requested here
            auto __res = _M_get_insert_unique_pos(_S_key(__z));
                         ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_map.h:575:16: note: in instantiation of function template specialization 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_emplace_unique<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >' requested here
        { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); }
                      ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:3348:48: note: in instantiation of function template specialization 'std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::emplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >' requested here
                        result.m_value.object->emplace(std::move(key), std::move(value));
                                               ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:3205:9: note: in instantiation of member function 'nlohmann::detail::parser<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >::parse_internal' requested here
        parse_internal(true, result);
        ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:15692:74: note: in instantiation of member function 'nlohmann::detail::parser<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >::parse' requested here
        parser(detail::input_adapter(first, last), cb, allow_exceptions).parse(true, result);
                                                                         ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:17254:28: note: in instantiation of function template specialization 'nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>::parse<const char *, 0>' requested here
    return nlohmann::json::parse(s, s + n);
                           ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:559:2: note: candidate template ignored: substitution failure [with _Tp = const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, _Up = const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &]
        operator()(_Tp&& __t, _Up&& __u) const
        ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:569:2: note: candidate template ignored: could not match '_Tp *' against 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >'
        operator()(_Tp* __t, _Up* __u) const noexcept
        ^
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:53:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/map:60:
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:2317:11: error: no matching function for call to object of type 'std::less<void>'
                            || _M_impl._M_key_compare(_S_key(__z),
                               ^~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:2374:20: note: in instantiation of member function 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_insert_node' requested here
              return _Res(_M_insert_node(__res.first, __res.second, __z), true);
                          ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_map.h:575:16: note: in instantiation of function template specialization 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_emplace_unique<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >' requested here
        { return _M_t._M_emplace_unique(std::forward<_Args>(__args)...); }
                      ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:3348:48: note: in instantiation of function template specialization 'std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::emplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >' requested here
                        result.m_value.object->emplace(std::move(key), std::move(value));
                                               ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:3205:9: note: in instantiation of member function 'nlohmann::detail::parser<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >::parse_internal' requested here
        parse_internal(true, result);
        ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:15692:74: note: in instantiation of member function 'nlohmann::detail::parser<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >::parse' requested here
        parser(detail::input_adapter(first, last), cb, allow_exceptions).parse(true, result);
                                                                         ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:17254:28: note: in instantiation of function template specialization 'nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>::parse<const char *, 0>' requested here
    return nlohmann::json::parse(s, s + n);
                           ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:559:2: note: candidate template ignored: substitution failure [with _Tp = const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, _Up = const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &]
        operator()(_Tp&& __t, _Up&& __u) const
        ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:569:2: note: candidate template ignored: could not match '_Tp *' against 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >'
        operator()(_Tp* __t, _Up* __u) const noexcept
        ^
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:36:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/algorithm:60:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/utility:70:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_pair.h:59:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/move.h:55:
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/type_traits:149:26: error: implicit instantiation of undefined template 'std::less<void>::__not_overloaded<char const (&)[5], const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, void>'
    : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type
                         ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:564:4: note: in instantiation of template class 'std::__and_<std::less<void>::__not_overloaded<char const (&)[5], const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, void>, std::is_convertible<char const (&)[5], const volatile void *>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, const volatile void *> >' requested here
                        __ptr_cmp<_Tp, _Up>{});
                        ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:1241:24: note: in instantiation of function template specialization 'std::less<void>::operator()<char const (&)[5], const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &>' requested here
          if (__j != end() && _M_impl._M_key_compare(__k, _S_key(__j._M_node)))
                              ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:1231:25: note: in instantiation of function template specialization 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_find_tr<char [5], void>' requested here
          return __const_this->_M_find_tr(__k)._M_const_cast();
                               ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_map.h:1176:16: note: in instantiation of function template specialization 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_find_tr<char [5], void>' requested here
        { return _M_t._M_find_tr(__x); }
                      ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:13498:59: note: in instantiation of function template specialization 'std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::find<char [5]>' requested here
            result.m_it.object_iterator = m_value.object->find(std::forward<KeyT>(key));
                                                          ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:85:17: note: in instantiation of function template specialization 'nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>::find<char const (&)[5]>' requested here
        if (obj.find("type") != obj.end())
                ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:590:9: note: template is declared here
        struct __not_overloaded;
               ^
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:36:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/algorithm:60:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/utility:70:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_pair.h:59:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/move.h:55:
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/type_traits:149:26: error: implicit instantiation of undefined template 'std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, char const (&)[5], void>'
    : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type
                         ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:564:4: note: in instantiation of template class 'std::__and_<std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, char const (&)[5], void>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, const volatile void *>, std::is_convertible<char const (&)[5], const volatile void *> >' requested here
                        __ptr_cmp<_Tp, _Up>{});
                        ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:1275:11: note: in instantiation of function template specialization 'std::less<void>::operator()<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, char const (&)[5]>' requested here
            if (!_M_impl._M_key_compare(_S_key(__x), __k))
                 ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:1240:15: note: in instantiation of function template specialization 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_lower_bound_tr<char [5], void>' requested here
          auto __j = _M_lower_bound_tr(__k);
                     ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:1231:25: note: in instantiation of function template specialization 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_find_tr<char [5], void>' requested here
          return __const_this->_M_find_tr(__k)._M_const_cast();
                               ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_map.h:1176:16: note: in instantiation of function template specialization 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_find_tr<char [5], void>' requested here
        { return _M_t._M_find_tr(__x); }
                      ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:13498:59: note: in instantiation of function template specialization 'std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::find<char [5]>' requested here
            result.m_it.object_iterator = m_value.object->find(std::forward<KeyT>(key));
                                                          ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:85:17: note: in instantiation of function template specialization 'nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>::find<char const (&)[5]>' requested here
        if (obj.find("type") != obj.end())
                ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:590:9: note: template is declared here
        struct __not_overloaded;
               ^
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:53:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/map:61:
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_map.h:538:22: error: no matching function for call to object of type 'std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::key_compare' (aka 'std::less<void>')
        if (__i == end() || key_comp()(__k, (*__i).first))
                            ^~~~~~~~~~
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:12639:40: note: in instantiation of member function 'std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::at' requested here
                return m_value.object->at(key);
                                       ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:86:41: note: in instantiation of member function 'nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>::at' requested here
                return getEventType(obj.at("type").get<std::string>());
                                        ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:559:2: note: candidate template ignored: substitution failure [with _Tp = const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, _Up = const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &]
        operator()(_Tp&& __t, _Up&& __u) const
        ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:569:2: note: candidate template ignored: could not match '_Tp *' against 'std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::key_type' (aka 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >')
        operator()(_Tp* __t, _Up* __u) const noexcept
        ^
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:53:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/map:60:
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:1888:7: error: no matching function for call to object of type 'std::less<void>'
        if (!_M_impl._M_key_compare(_S_key(__x), __k))
             ^~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:1203:16: note: in instantiation of member function 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_lower_bound' requested here
      { return _M_lower_bound(_M_begin(), _M_end(), __k); }
               ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_map.h:1240:21: note: in instantiation of member function 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::lower_bound' requested here
      { return _M_t.lower_bound(__x); }
                    ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_map.h:537:17: note: in instantiation of member function 'std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::lower_bound' requested here
        iterator __i = lower_bound(__k);
                       ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:12639:40: note: in instantiation of member function 'std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::at' requested here
                return m_value.object->at(key);
                                       ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:86:41: note: in instantiation of member function 'nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>::at' requested here
                return getEventType(obj.at("type").get<std::string>());
                                        ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:559:2: note: candidate template ignored: substitution failure [with _Tp = const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, _Up = const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &]
        operator()(_Tp&& __t, _Up&& __u) const
        ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:569:2: note: candidate template ignored: could not match '_Tp *' against 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >'
        operator()(_Tp* __t, _Up* __u) const noexcept
        ^
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:36:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/algorithm:60:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/utility:70:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_pair.h:59:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/move.h:55:
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/type_traits:149:26: error: implicit instantiation of undefined template 'std::less<void>::__not_overloaded<char const (&)[8], const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, void>'
    : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type
                         ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:564:4: note: in instantiation of template class 'std::__and_<std::less<void>::__not_overloaded<char const (&)[8], const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, void>, std::is_convertible<char const (&)[8], const volatile void *>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, const volatile void *> >' requested here
                        __ptr_cmp<_Tp, _Up>{});
                        ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:1241:24: note: in instantiation of function template specialization 'std::less<void>::operator()<char const (&)[8], const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &>' requested here
          if (__j != end() && _M_impl._M_key_compare(__k, _S_key(__j._M_node)))
                              ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:1231:25: note: in instantiation of function template specialization 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_find_tr<char [8], void>' requested here
          return __const_this->_M_find_tr(__k)._M_const_cast();
                               ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_map.h:1176:16: note: in instantiation of function template specialization 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_find_tr<char [8], void>' requested here
        { return _M_t._M_find_tr(__x); }
                      ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:13498:59: note: in instantiation of function template specialization 'std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::find<char [8]>' requested here
            result.m_it.object_iterator = m_value.object->find(std::forward<KeyT>(key));
                                                          ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:120:17: note: in instantiation of function template specialization 'nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>::find<char const (&)[8]>' requested here
        if (obj.find("msgtype") == obj.end())
                ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:590:9: note: template is declared here
        struct __not_overloaded;
               ^
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3:
In file included from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:36:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/algorithm:60:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/utility:70:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_pair.h:59:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/move.h:55:
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/type_traits:149:26: error: implicit instantiation of undefined template 'std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, char const (&)[8], void>'
    : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type
                         ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:564:4: note: in instantiation of template class 'std::__and_<std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, char const (&)[8], void>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, const volatile void *>, std::is_convertible<char const (&)[8], const volatile void *> >' requested here
                        __ptr_cmp<_Tp, _Up>{});
                        ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:1275:11: note: in instantiation of function template specialization 'std::less<void>::operator()<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, char const (&)[8]>' requested here
            if (!_M_impl._M_key_compare(_S_key(__x), __k))
                 ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:1240:15: note: in instantiation of function template specialization 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_lower_bound_tr<char [8], void>' requested here
          auto __j = _M_lower_bound_tr(__k);
                     ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_tree.h:1231:25: note: in instantiation of function template specialization 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_find_tr<char [8], void>' requested here
          return __const_this->_M_find_tr(__k)._M_const_cast();
                               ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_map.h:1176:16: note: in instantiation of function template specialization 'std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > >, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::_M_find_tr<char [8], void>' requested here
        { return _M_t._M_find_tr(__x); }
                      ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:13498:59: note: in instantiation of function template specialization 'std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>, std::less<void>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer> > > >::find<char [8]>' requested here
            result.m_it.object_iterator = m_value.object->find(std::forward<KeyT>(key));
                                                          ^
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:120:17: note: in instantiation of function template specialization 'nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, adl_serializer>::find<char const (&)[8]>' requested here
        if (obj.find("msgtype") == obj.end())
                ^
/usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_function.h:590:9: note: template is declared here
        struct __not_overloaded;
               ^
13 errors generated.
gmake[2]: *** [CMakeFiles/matrix_structs.dir/build.make:63: CMakeFiles/matrix_structs.dir/src/events.cpp.o] Error 1
@nlohmann
Copy link
Owner

Can you compile and run this library's unit tests, see https://github.com/nlohmann/json#execute-unit-tests ?

@xvitaly
Copy link
Contributor Author

xvitaly commented Mar 21, 2018

Can you compile and run this library's unit tests

Done.
result.txt

@xvitaly
Copy link
Contributor Author

xvitaly commented Mar 21, 2018

Clang version:

clang version 6.0.0 (tags/RELEASE_600/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-redhat-linux/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/8
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-redhat-linux/8
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64

@nlohmann
Copy link
Owner

Hm. There is an assertion failing inside GCC 8's STL implementation that you use with Clang 6. I am not sure that this indicates something is wrong with this library. Could you try libc++ or libstd++ from a stable release of GCC?

@xvitaly
Copy link
Contributor Author

xvitaly commented Mar 21, 2018

Could you try libc++ or libstd++ from a stable release of GCC?

GCC 8.0.1 fails to build too.

@nlohmann
Copy link
Owner

Again with assertions in the STL?

@xvitaly
Copy link
Contributor Author

xvitaly commented Mar 21, 2018

Again with assertions in the STL?

I will run build and tests on GCC 8.0.1 now and upload results.

@xvitaly
Copy link
Contributor Author

xvitaly commented Mar 21, 2018

GCC version:

-- The C compiler identification is GNU 8.0.1
-- The CXX compiler identification is GNU 8.0.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done

Build failure:

[  2%] Building CXX object CMakeFiles/matrix_structs.dir/src/events.cpp.o
In file included from /usr/include/c++/8/bits/move.h:55,
                 from /usr/include/c++/8/bits/stl_pair.h:59,
                 from /usr/include/c++/8/utility:70,
                 from /usr/include/c++/8/algorithm:60,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:36,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/type_traits: In instantiation of 'struct std::__and_<std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, void>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*> >':
/usr/include/c++/8/bits/stl_function.h:563:17:   required from 'constexpr decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) std::less<void>::operator()(_Tp&&, _Up&&) const [with _Tp = const std::__cxx11::basic_string<char>&; _Up = const std::__cxx11::basic_string<char>&; decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) = bool]'
/usr/include/c++/8/bits/stl_map.h:538:32:   required from 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::at(const key_type&) [with _Key = std::__cxx11::basic_string<char>; _Tp = nlohmann::basic_json<>; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = nlohmann::basic_json<>; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::__cxx11::basic_string<char>]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:12639:46:   required from 'const value_type& nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::at(const typename nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::object_t::key_type&) const [with ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_reference = const nlohmann::basic_json<>&; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::value_type = nlohmann::basic_json<>; typename nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::object_t::key_type = std::__cxx11::basic_string<char>]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:86:50:   required from here
/usr/include/c++/8/type_traits:148:12: error: ambiguous template instantiation for 'struct std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char>&, const std::__cxx11::basic_string<char>&, void>'
     struct __and_<_B1, _B2, _B3, _Bn...>
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/functional:49,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:40,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/bits/stl_function.h:594:9: note: candidates are: 'template<class _Tp, class _Up> struct std::less<void>::__not_overloaded<_Tp, _Up, std::__void_t<decltype (std::operator<(declval<_Tp>(), declval<_Up>()))> > [with _Tp = const std::__cxx11::basic_string<char>&; _Up = const std::__cxx11::basic_string<char>&]'
  struct __not_overloaded<_Tp, _Up, __void_t<
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    decltype(operator<(std::declval<_Tp>(), std::declval<_Up>()))>>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_function.h:608:9: note:                 'template<class _Tp, class _Up> struct std::less<void>::__not_overloaded<_Tp, _Up> [with _Tp = const std::__cxx11::basic_string<char>&; _Up = const std::__cxx11::basic_string<char>&]'
  struct __not_overloaded<_Tp, _Up> : __not_overloaded2<_Tp, _Up> { };
         ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/bits/move.h:55,
                 from /usr/include/c++/8/bits/stl_pair.h:59,
                 from /usr/include/c++/8/utility:70,
                 from /usr/include/c++/8/algorithm:60,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:36,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/type_traits:148:12: error: incomplete type 'std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char>&, const std::__cxx11::basic_string<char>&, void>' used in nested name specifier
     struct __and_<_B1, _B2, _B3, _Bn...>
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/functional:49,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:40,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/bits/stl_function.h: In instantiation of 'constexpr decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) std::less<void>::operator()(_Tp&&, _Up&&) const [with _Tp = const std::__cxx11::basic_string<char>&; _Up = const std::__cxx11::basic_string<char>&; decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) = bool]':
/usr/include/c++/8/bits/stl_map.h:538:32:   required from 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::at(const key_type&) [with _Key = std::__cxx11::basic_string<char>; _Tp = nlohmann::basic_json<>; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = nlohmann::basic_json<>; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::__cxx11::basic_string<char>]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:12639:46:   required from 'const value_type& nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::at(const typename nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::object_t::key_type&) const [with ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_reference = const nlohmann::basic_json<>&; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::value_type = nlohmann::basic_json<>; typename nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::object_t::key_type = std::__cxx11::basic_string<char>]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:86:50:   required from here
/usr/include/c++/8/bits/stl_function.h:563:17: error: no matching function for call to 'std::less<void>::_S_cmp(const std::__cxx11::basic_string<char>&, const std::__cxx11::basic_string<char>&, std::less<void>::__ptr_cmp<const std::__cxx11::basic_string<char>&, const std::__cxx11::basic_string<char>&>) const'
    return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    __ptr_cmp<_Tp, _Up>{});
    ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_function.h:577:2: note: candidate: 'template<class _Tp, class _Up> static constexpr decltype(auto) std::less<void>::_S_cmp(_Tp&&, _Up&&, std::false_type)'
  _S_cmp(_Tp&& __t, _Up&& __u, false_type)
  ^~~~~~
/usr/include/c++/8/bits/stl_function.h:577:2: note:   template argument deduction/substitution failed:
/usr/include/c++/8/bits/stl_function.h:563:17: note:   cannot convert 'std::less<void>::__ptr_cmp<const std::__cxx11::basic_string<char>&, const std::__cxx11::basic_string<char>&>{}' (type 'std::less<void>::__ptr_cmp<const std::__cxx11::basic_string<char>&, const std::__cxx11::basic_string<char>&>' {aka 'std::__and_<std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, void>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*> >'}) to type 'std::false_type' {aka 'std::integral_constant<bool, false>'}
    return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    __ptr_cmp<_Tp, _Up>{});
    ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_function.h:582:2: note: candidate: 'template<class _Tp, class _Up> static constexpr bool std::less<void>::_S_cmp(_Tp&&, _Up&&, std::true_type)'
  _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept
  ^~~~~~
/usr/include/c++/8/bits/stl_function.h:582:2: note:   template argument deduction/substitution failed:
/usr/include/c++/8/bits/stl_function.h:563:17: note:   cannot convert 'std::less<void>::__ptr_cmp<const std::__cxx11::basic_string<char>&, const std::__cxx11::basic_string<char>&>{}' (type 'std::less<void>::__ptr_cmp<const std::__cxx11::basic_string<char>&, const std::__cxx11::basic_string<char>&>' {aka 'std::__and_<std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, void>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*> >'}) to type 'std::true_type' {aka 'std::integral_constant<bool, true>'}
    return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    __ptr_cmp<_Tp, _Up>{});
    ~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/bits/move.h:55,
                 from /usr/include/c++/8/bits/stl_pair.h:59,
                 from /usr/include/c++/8/utility:70,
                 from /usr/include/c++/8/algorithm:60,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:36,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/type_traits: In instantiation of 'struct std::__and_<std::less<void>::__not_overloaded<const char (&)[5], const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, void>, std::is_convertible<const char (&)[5], const volatile void*>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*> >':
/usr/include/c++/8/bits/stl_function.h:563:17:   required from 'constexpr decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) std::less<void>::operator()(_Tp&&, _Up&&) const [with _Tp = const char (&)[5]; _Up = const std::__cxx11::basic_string<char>&; decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) = bool]'
/usr/include/c++/8/bits/stl_tree.h:1241:21:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) const [with _Kt = char [5]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_tree.h:1231:41:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) [with _Kt = char [5]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_map.h:1176:30:   required from 'decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) std::map<_Key, _Tp, _Compare, _Alloc>::find(const _Kt&) [with _Kt = char [5]; _Key = std::__cxx11::basic_string<char>; _Tp = nlohmann::basic_json<>; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:13498:41:   required from 'nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_iterator nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::find(KeyT&&) const [with KeyT = const char (&)[5]; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_iterator = nlohmann::detail::iter_impl<const nlohmann::basic_json<> >]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:85:28:   required from here
/usr/include/c++/8/type_traits:148:12: error: ambiguous template instantiation for 'struct std::less<void>::__not_overloaded<const char (&)[5], const std::__cxx11::basic_string<char>&, void>'
     struct __and_<_B1, _B2, _B3, _Bn...>
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/functional:49,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:40,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/bits/stl_function.h:594:9: note: candidates are: 'template<class _Tp, class _Up> struct std::less<void>::__not_overloaded<_Tp, _Up, std::__void_t<decltype (std::operator<(declval<_Tp>(), declval<_Up>()))> > [with _Tp = const char (&)[5]; _Up = const std::__cxx11::basic_string<char>&]'
  struct __not_overloaded<_Tp, _Up, __void_t<
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    decltype(operator<(std::declval<_Tp>(), std::declval<_Up>()))>>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_function.h:608:9: note:                 'template<class _Tp, class _Up> struct std::less<void>::__not_overloaded<_Tp, _Up> [with _Tp = const char (&)[5]; _Up = const std::__cxx11::basic_string<char>&]'
  struct __not_overloaded<_Tp, _Up> : __not_overloaded2<_Tp, _Up> { };
         ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/bits/move.h:55,
                 from /usr/include/c++/8/bits/stl_pair.h:59,
                 from /usr/include/c++/8/utility:70,
                 from /usr/include/c++/8/algorithm:60,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:36,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/type_traits:148:12: error: incomplete type 'std::less<void>::__not_overloaded<const char (&)[5], const std::__cxx11::basic_string<char>&, void>' used in nested name specifier
     struct __and_<_B1, _B2, _B3, _Bn...>
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/functional:49,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:40,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/bits/stl_function.h: In instantiation of 'constexpr decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) std::less<void>::operator()(_Tp&&, _Up&&) const [with _Tp = const char (&)[5]; _Up = const std::__cxx11::basic_string<char>&; decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) = bool]':
/usr/include/c++/8/bits/stl_tree.h:1241:21:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) const [with _Kt = char [5]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_tree.h:1231:41:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) [with _Kt = char [5]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_map.h:1176:30:   required from 'decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) std::map<_Key, _Tp, _Compare, _Alloc>::find(const _Kt&) [with _Kt = char [5]; _Key = std::__cxx11::basic_string<char>; _Tp = nlohmann::basic_json<>; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:13498:41:   required from 'nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_iterator nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::find(KeyT&&) const [with KeyT = const char (&)[5]; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_iterator = nlohmann::detail::iter_impl<const nlohmann::basic_json<> >]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:85:28:   required from here
/usr/include/c++/8/bits/stl_function.h:563:17: error: no matching function for call to 'std::less<void>::_S_cmp(const char [5], const std::__cxx11::basic_string<char>&, std::less<void>::__ptr_cmp<const char (&)[5], const std::__cxx11::basic_string<char>&>) const'
    return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    __ptr_cmp<_Tp, _Up>{});
    ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_function.h:577:2: note: candidate: 'template<class _Tp, class _Up> static constexpr decltype(auto) std::less<void>::_S_cmp(_Tp&&, _Up&&, std::false_type)'
  _S_cmp(_Tp&& __t, _Up&& __u, false_type)
  ^~~~~~
/usr/include/c++/8/bits/stl_function.h:577:2: note:   template argument deduction/substitution failed:
/usr/include/c++/8/bits/stl_function.h:563:17: note:   cannot convert 'std::less<void>::__ptr_cmp<const char (&)[5], const std::__cxx11::basic_string<char>&>{}' (type 'std::less<void>::__ptr_cmp<const char (&)[5], const std::__cxx11::basic_string<char>&>' {aka 'std::__and_<std::less<void>::__not_overloaded<const char (&)[5], const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, void>, std::is_convertible<const char (&)[5], const volatile void*>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*> >'}) to type 'std::false_type' {aka 'std::integral_constant<bool, false>'}
    return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    __ptr_cmp<_Tp, _Up>{});
    ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_function.h:582:2: note: candidate: 'template<class _Tp, class _Up> static constexpr bool std::less<void>::_S_cmp(_Tp&&, _Up&&, std::true_type)'
  _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept
  ^~~~~~
/usr/include/c++/8/bits/stl_function.h:582:2: note:   template argument deduction/substitution failed:
/usr/include/c++/8/bits/stl_function.h:563:17: note:   cannot convert 'std::less<void>::__ptr_cmp<const char (&)[5], const std::__cxx11::basic_string<char>&>{}' (type 'std::less<void>::__ptr_cmp<const char (&)[5], const std::__cxx11::basic_string<char>&>' {aka 'std::__and_<std::less<void>::__not_overloaded<const char (&)[5], const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, void>, std::is_convertible<const char (&)[5], const volatile void*>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*> >'}) to type 'std::true_type' {aka 'std::integral_constant<bool, true>'}
    return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    __ptr_cmp<_Tp, _Up>{});
    ~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/bits/move.h:55,
                 from /usr/include/c++/8/bits/stl_pair.h:59,
                 from /usr/include/c++/8/utility:70,
                 from /usr/include/c++/8/algorithm:60,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:36,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/type_traits: In instantiation of 'struct std::__and_<std::less<void>::__not_overloaded<const char (&)[8], const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, void>, std::is_convertible<const char (&)[8], const volatile void*>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*> >':
/usr/include/c++/8/bits/stl_function.h:563:17:   required from 'constexpr decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) std::less<void>::operator()(_Tp&&, _Up&&) const [with _Tp = const char (&)[8]; _Up = const std::__cxx11::basic_string<char>&; decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) = bool]'
/usr/include/c++/8/bits/stl_tree.h:1241:21:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) const [with _Kt = char [8]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_tree.h:1231:41:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) [with _Kt = char [8]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_map.h:1176:30:   required from 'decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) std::map<_Key, _Tp, _Compare, _Alloc>::find(const _Kt&) [with _Kt = char [8]; _Key = std::__cxx11::basic_string<char>; _Tp = nlohmann::basic_json<>; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:13498:41:   required from 'nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_iterator nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::find(KeyT&&) const [with KeyT = const char (&)[8]; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_iterator = nlohmann::detail::iter_impl<const nlohmann::basic_json<> >]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:120:31:   required from here
/usr/include/c++/8/type_traits:148:12: error: ambiguous template instantiation for 'struct std::less<void>::__not_overloaded<const char (&)[8], const std::__cxx11::basic_string<char>&, void>'
     struct __and_<_B1, _B2, _B3, _Bn...>
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/functional:49,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:40,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/bits/stl_function.h:594:9: note: candidates are: 'template<class _Tp, class _Up> struct std::less<void>::__not_overloaded<_Tp, _Up, std::__void_t<decltype (std::operator<(declval<_Tp>(), declval<_Up>()))> > [with _Tp = const char (&)[8]; _Up = const std::__cxx11::basic_string<char>&]'
  struct __not_overloaded<_Tp, _Up, __void_t<
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    decltype(operator<(std::declval<_Tp>(), std::declval<_Up>()))>>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_function.h:608:9: note:                 'template<class _Tp, class _Up> struct std::less<void>::__not_overloaded<_Tp, _Up> [with _Tp = const char (&)[8]; _Up = const std::__cxx11::basic_string<char>&]'
  struct __not_overloaded<_Tp, _Up> : __not_overloaded2<_Tp, _Up> { };
         ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/bits/move.h:55,
                 from /usr/include/c++/8/bits/stl_pair.h:59,
                 from /usr/include/c++/8/utility:70,
                 from /usr/include/c++/8/algorithm:60,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:36,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/type_traits:148:12: error: incomplete type 'std::less<void>::__not_overloaded<const char (&)[8], const std::__cxx11::basic_string<char>&, void>' used in nested name specifier
     struct __and_<_B1, _B2, _B3, _Bn...>
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/functional:49,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:40,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/bits/stl_function.h: In instantiation of 'constexpr decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) std::less<void>::operator()(_Tp&&, _Up&&) const [with _Tp = const char (&)[8]; _Up = const std::__cxx11::basic_string<char>&; decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) = bool]':
/usr/include/c++/8/bits/stl_tree.h:1241:21:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) const [with _Kt = char [8]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_tree.h:1231:41:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) [with _Kt = char [8]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_map.h:1176:30:   required from 'decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) std::map<_Key, _Tp, _Compare, _Alloc>::find(const _Kt&) [with _Kt = char [8]; _Key = std::__cxx11::basic_string<char>; _Tp = nlohmann::basic_json<>; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:13498:41:   required from 'nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_iterator nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::find(KeyT&&) const [with KeyT = const char (&)[8]; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_iterator = nlohmann::detail::iter_impl<const nlohmann::basic_json<> >]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:120:31:   required from here
/usr/include/c++/8/bits/stl_function.h:563:17: error: no matching function for call to 'std::less<void>::_S_cmp(const char [8], const std::__cxx11::basic_string<char>&, std::less<void>::__ptr_cmp<const char (&)[8], const std::__cxx11::basic_string<char>&>) const'
    return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    __ptr_cmp<_Tp, _Up>{});
    ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_function.h:577:2: note: candidate: 'template<class _Tp, class _Up> static constexpr decltype(auto) std::less<void>::_S_cmp(_Tp&&, _Up&&, std::false_type)'
  _S_cmp(_Tp&& __t, _Up&& __u, false_type)
  ^~~~~~
/usr/include/c++/8/bits/stl_function.h:577:2: note:   template argument deduction/substitution failed:
/usr/include/c++/8/bits/stl_function.h:563:17: note:   cannot convert 'std::less<void>::__ptr_cmp<const char (&)[8], const std::__cxx11::basic_string<char>&>{}' (type 'std::less<void>::__ptr_cmp<const char (&)[8], const std::__cxx11::basic_string<char>&>' {aka 'std::__and_<std::less<void>::__not_overloaded<const char (&)[8], const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, void>, std::is_convertible<const char (&)[8], const volatile void*>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*> >'}) to type 'std::false_type' {aka 'std::integral_constant<bool, false>'}
    return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    __ptr_cmp<_Tp, _Up>{});
    ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_function.h:582:2: note: candidate: 'template<class _Tp, class _Up> static constexpr bool std::less<void>::_S_cmp(_Tp&&, _Up&&, std::true_type)'
  _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept
  ^~~~~~
/usr/include/c++/8/bits/stl_function.h:582:2: note:   template argument deduction/substitution failed:
/usr/include/c++/8/bits/stl_function.h:563:17: note:   cannot convert 'std::less<void>::__ptr_cmp<const char (&)[8], const std::__cxx11::basic_string<char>&>{}' (type 'std::less<void>::__ptr_cmp<const char (&)[8], const std::__cxx11::basic_string<char>&>' {aka 'std::__and_<std::less<void>::__not_overloaded<const char (&)[8], const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, void>, std::is_convertible<const char (&)[8], const volatile void*>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*> >'}) to type 'std::true_type' {aka 'std::integral_constant<bool, true>'}
    return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    __ptr_cmp<_Tp, _Up>{});
    ~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/bits/move.h:55,
                 from /usr/include/c++/8/bits/stl_pair.h:59,
                 from /usr/include/c++/8/utility:70,
                 from /usr/include/c++/8/algorithm:60,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:36,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/type_traits: In instantiation of 'struct std::__and_<std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const char (&)[5], void>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*>, std::is_convertible<const char (&)[5], const volatile void*> >':
/usr/include/c++/8/bits/stl_function.h:563:17:   required from 'constexpr decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) std::less<void>::operator()(_Tp&&, _Up&&) const [with _Tp = const std::__cxx11::basic_string<char>&; _Up = const char (&)[5]; decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) = bool]'
/usr/include/c++/8/bits/stl_tree.h:1275:10:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_lower_bound_tr(const _Kt&) const [with _Kt = char [5]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_tree.h:1240:9:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) const [with _Kt = char [5]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_tree.h:1231:41:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) [with _Kt = char [5]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_map.h:1176:30:   required from 'decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) std::map<_Key, _Tp, _Compare, _Alloc>::find(const _Kt&) [with _Kt = char [5]; _Key = std::__cxx11::basic_string<char>; _Tp = nlohmann::basic_json<>; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:13498:41:   required from 'nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_iterator nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::find(KeyT&&) const [with KeyT = const char (&)[5]; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_iterator = nlohmann::detail::iter_impl<const nlohmann::basic_json<> >]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:85:28:   required from here
/usr/include/c++/8/type_traits:148:12: error: ambiguous template instantiation for 'struct std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char>&, const char (&)[5], void>'
     struct __and_<_B1, _B2, _B3, _Bn...>
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/functional:49,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:40,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/bits/stl_function.h:594:9: note: candidates are: 'template<class _Tp, class _Up> struct std::less<void>::__not_overloaded<_Tp, _Up, std::__void_t<decltype (std::operator<(declval<_Tp>(), declval<_Up>()))> > [with _Tp = const std::__cxx11::basic_string<char>&; _Up = const char (&)[5]]'
  struct __not_overloaded<_Tp, _Up, __void_t<
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    decltype(operator<(std::declval<_Tp>(), std::declval<_Up>()))>>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_function.h:608:9: note:                 'template<class _Tp, class _Up> struct std::less<void>::__not_overloaded<_Tp, _Up> [with _Tp = const std::__cxx11::basic_string<char>&; _Up = const char (&)[5]]'
  struct __not_overloaded<_Tp, _Up> : __not_overloaded2<_Tp, _Up> { };
         ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/bits/move.h:55,
                 from /usr/include/c++/8/bits/stl_pair.h:59,
                 from /usr/include/c++/8/utility:70,
                 from /usr/include/c++/8/algorithm:60,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:36,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/type_traits:148:12: error: incomplete type 'std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char>&, const char (&)[5], void>' used in nested name specifier
     struct __and_<_B1, _B2, _B3, _Bn...>
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/functional:49,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:40,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/bits/stl_function.h: In instantiation of 'constexpr decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) std::less<void>::operator()(_Tp&&, _Up&&) const [with _Tp = const std::__cxx11::basic_string<char>&; _Up = const char (&)[5]; decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) = bool]':
/usr/include/c++/8/bits/stl_tree.h:1275:10:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_lower_bound_tr(const _Kt&) const [with _Kt = char [5]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_tree.h:1240:9:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) const [with _Kt = char [5]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_tree.h:1231:41:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) [with _Kt = char [5]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_map.h:1176:30:   required from 'decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) std::map<_Key, _Tp, _Compare, _Alloc>::find(const _Kt&) [with _Kt = char [5]; _Key = std::__cxx11::basic_string<char>; _Tp = nlohmann::basic_json<>; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:13498:41:   required from 'nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_iterator nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::find(KeyT&&) const [with KeyT = const char (&)[5]; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_iterator = nlohmann::detail::iter_impl<const nlohmann::basic_json<> >]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:85:28:   required from here
/usr/include/c++/8/bits/stl_function.h:563:17: error: no matching function for call to 'std::less<void>::_S_cmp(const std::__cxx11::basic_string<char>&, const char [5], std::less<void>::__ptr_cmp<const std::__cxx11::basic_string<char>&, const char (&)[5]>) const'
    return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    __ptr_cmp<_Tp, _Up>{});
    ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_function.h:577:2: note: candidate: 'template<class _Tp, class _Up> static constexpr decltype(auto) std::less<void>::_S_cmp(_Tp&&, _Up&&, std::false_type)'
  _S_cmp(_Tp&& __t, _Up&& __u, false_type)
  ^~~~~~
/usr/include/c++/8/bits/stl_function.h:577:2: note:   template argument deduction/substitution failed:
/usr/include/c++/8/bits/stl_function.h:563:17: note:   cannot convert 'std::less<void>::__ptr_cmp<const std::__cxx11::basic_string<char>&, const char (&)[5]>{}' (type 'std::less<void>::__ptr_cmp<const std::__cxx11::basic_string<char>&, const char (&)[5]>' {aka 'std::__and_<std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const char (&)[5], void>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*>, std::is_convertible<const char (&)[5], const volatile void*> >'}) to type 'std::false_type' {aka 'std::integral_constant<bool, false>'}
    return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    __ptr_cmp<_Tp, _Up>{});
    ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_function.h:582:2: note: candidate: 'template<class _Tp, class _Up> static constexpr bool std::less<void>::_S_cmp(_Tp&&, _Up&&, std::true_type)'
  _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept
  ^~~~~~
/usr/include/c++/8/bits/stl_function.h:582:2: note:   template argument deduction/substitution failed:
/usr/include/c++/8/bits/stl_function.h:563:17: note:   cannot convert 'std::less<void>::__ptr_cmp<const std::__cxx11::basic_string<char>&, const char (&)[5]>{}' (type 'std::less<void>::__ptr_cmp<const std::__cxx11::basic_string<char>&, const char (&)[5]>' {aka 'std::__and_<std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const char (&)[5], void>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*>, std::is_convertible<const char (&)[5], const volatile void*> >'}) to type 'std::true_type' {aka 'std::integral_constant<bool, true>'}
    return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    __ptr_cmp<_Tp, _Up>{});
    ~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/bits/move.h:55,
                 from /usr/include/c++/8/bits/stl_pair.h:59,
                 from /usr/include/c++/8/utility:70,
                 from /usr/include/c++/8/algorithm:60,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:36,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/type_traits: In instantiation of 'struct std::__and_<std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const char (&)[8], void>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*>, std::is_convertible<const char (&)[8], const volatile void*> >':
/usr/include/c++/8/bits/stl_function.h:563:17:   required from 'constexpr decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) std::less<void>::operator()(_Tp&&, _Up&&) const [with _Tp = const std::__cxx11::basic_string<char>&; _Up = const char (&)[8]; decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) = bool]'
/usr/include/c++/8/bits/stl_tree.h:1275:10:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_lower_bound_tr(const _Kt&) const [with _Kt = char [8]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_tree.h:1240:9:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) const [with _Kt = char [8]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_tree.h:1231:41:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) [with _Kt = char [8]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_map.h:1176:30:   required from 'decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) std::map<_Key, _Tp, _Compare, _Alloc>::find(const _Kt&) [with _Kt = char [8]; _Key = std::__cxx11::basic_string<char>; _Tp = nlohmann::basic_json<>; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:13498:41:   required from 'nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_iterator nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::find(KeyT&&) const [with KeyT = const char (&)[8]; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_iterator = nlohmann::detail::iter_impl<const nlohmann::basic_json<> >]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:120:31:   required from here
/usr/include/c++/8/type_traits:148:12: error: ambiguous template instantiation for 'struct std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char>&, const char (&)[8], void>'
     struct __and_<_B1, _B2, _B3, _Bn...>
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/functional:49,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:40,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/bits/stl_function.h:594:9: note: candidates are: 'template<class _Tp, class _Up> struct std::less<void>::__not_overloaded<_Tp, _Up, std::__void_t<decltype (std::operator<(declval<_Tp>(), declval<_Up>()))> > [with _Tp = const std::__cxx11::basic_string<char>&; _Up = const char (&)[8]]'
  struct __not_overloaded<_Tp, _Up, __void_t<
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    decltype(operator<(std::declval<_Tp>(), std::declval<_Up>()))>>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_function.h:608:9: note:                 'template<class _Tp, class _Up> struct std::less<void>::__not_overloaded<_Tp, _Up> [with _Tp = const std::__cxx11::basic_string<char>&; _Up = const char (&)[8]]'
  struct __not_overloaded<_Tp, _Up> : __not_overloaded2<_Tp, _Up> { };
         ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/bits/move.h:55,
                 from /usr/include/c++/8/bits/stl_pair.h:59,
                 from /usr/include/c++/8/utility:70,
                 from /usr/include/c++/8/algorithm:60,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:36,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/type_traits:148:12: error: incomplete type 'std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char>&, const char (&)[8], void>' used in nested name specifier
     struct __and_<_B1, _B2, _B3, _Bn...>
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/functional:49,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:40,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/include/mtx/events.hpp:3,
                 from /builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:1:
/usr/include/c++/8/bits/stl_function.h: In instantiation of 'constexpr decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) std::less<void>::operator()(_Tp&&, _Up&&) const [with _Tp = const std::__cxx11::basic_string<char>&; _Up = const char (&)[8]; decltype ((forward<_Tp>(__t) < forward<_Up>(__u))) = bool]':
/usr/include/c++/8/bits/stl_tree.h:1275:10:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_lower_bound_tr(const _Kt&) const [with _Kt = char [8]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_tree.h:1240:9:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) const [with _Kt = char [8]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_tree.h:1231:41:   required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_find_tr(const _Kt&) [with _Kt = char [8]; _Req = void; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/usr/include/c++/8/bits/stl_map.h:1176:30:   required from 'decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) std::map<_Key, _Tp, _Compare, _Alloc>::find(const _Kt&) [with _Kt = char [8]; _Key = std::__cxx11::basic_string<char>; _Tp = nlohmann::basic_json<>; _Compare = std::less<void>; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >; decltype (((std::map<_Key, _Tp, _Compare, _Alloc>*)this)->std::map<_Key, _Tp, _Compare, _Alloc>::_M_t._M_find_tr(__x)) = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::basic_json<> > >]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/deps/json.hpp:13498:41:   required from 'nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_iterator nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::find(KeyT&&) const [with KeyT = const char (&)[8]; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer; nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::const_iterator = nlohmann::detail::iter_impl<const nlohmann::basic_json<> >]'
/builddir/build/BUILD/nheko-480de2d30bcd82ed3beeab5fad9b2a55d34b4990/.third-party/matrix_structs/src/events.cpp:120:31:   required from here
/usr/include/c++/8/bits/stl_function.h:563:17: error: no matching function for call to 'std::less<void>::_S_cmp(const std::__cxx11::basic_string<char>&, const char [8], std::less<void>::__ptr_cmp<const std::__cxx11::basic_string<char>&, const char (&)[8]>) const'
    return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    __ptr_cmp<_Tp, _Up>{});
    ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_function.h:577:2: note: candidate: 'template<class _Tp, class _Up> static constexpr decltype(auto) std::less<void>::_S_cmp(_Tp&&, _Up&&, std::false_type)'
  _S_cmp(_Tp&& __t, _Up&& __u, false_type)
  ^~~~~~
/usr/include/c++/8/bits/stl_function.h:577:2: note:   template argument deduction/substitution failed:
/usr/include/c++/8/bits/stl_function.h:563:17: note:   cannot convert 'std::less<void>::__ptr_cmp<const std::__cxx11::basic_string<char>&, const char (&)[8]>{}' (type 'std::less<void>::__ptr_cmp<const std::__cxx11::basic_string<char>&, const char (&)[8]>' {aka 'std::__and_<std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const char (&)[8], void>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*>, std::is_convertible<const char (&)[8], const volatile void*> >'}) to type 'std::false_type' {aka 'std::integral_constant<bool, false>'}
    return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    __ptr_cmp<_Tp, _Up>{});
    ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_function.h:582:2: note: candidate: 'template<class _Tp, class _Up> static constexpr bool std::less<void>::_S_cmp(_Tp&&, _Up&&, std::true_type)'
  _S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept
  ^~~~~~
/usr/include/c++/8/bits/stl_function.h:582:2: note:   template argument deduction/substitution failed:
/usr/include/c++/8/bits/stl_function.h:563:17: note:   cannot convert 'std::less<void>::__ptr_cmp<const std::__cxx11::basic_string<char>&, const char (&)[8]>{}' (type 'std::less<void>::__ptr_cmp<const std::__cxx11::basic_string<char>&, const char (&)[8]>' {aka 'std::__and_<std::less<void>::__not_overloaded<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const char (&)[8], void>, std::is_convertible<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const volatile void*>, std::is_convertible<const char (&)[8], const volatile void*> >'}) to type 'std::true_type' {aka 'std::integral_constant<bool, true>'}
    return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
           ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    __ptr_cmp<_Tp, _Up>{});
    ~~~~~~~~~~~~~~~~~~~~~~
gmake[2]: *** [CMakeFiles/matrix_structs.dir/build.make:63: CMakeFiles/matrix_structs.dir/src/events.cpp.o] Error 1

Test results: gcc-result.txt

@xvitaly xvitaly changed the title Build failure using latest clang compiler Build failure using latest clang and GCC compilers Mar 21, 2018
@nlohmann
Copy link
Owner

Hmm... The same assertion error in GCC 8's valarray header. I am not sure what to do here.

@xvitaly
Copy link
Contributor Author

xvitaly commented Mar 21, 2018

I am not sure what to do here.

I can report this to GCC bug tracker.

@nlohmann
Copy link
Owner

That would be great. I think this is also the issue for the Clang error.

@xvitaly
Copy link
Contributor Author

xvitaly commented Mar 22, 2018

That would be great. I think this is also the issue for the Clang error.

Reported: RHBZ, GCC.

@sylvestre
Copy link

Has been also reported on the debian side: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=893517

@nlohmann
Copy link
Owner

Thanks for reporting this! I shall close the issue as there is nothing wrong with the library.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants