Skip to content

Try to compile using boost 1.80 fails in boost.json #3

@RoyBellingan

Description

@RoyBellingan

Maybe just add a check that 1.81 (or whatever required version) is present ?

If you want I can downgrade to report the actual error while compiling the example, but I think is just requiring a recent version as it was accessing nonexistent element.

It also fails using 1.81 using Opensuse tumbleweed, GCC 12.2.1 using C++11 mode with

In file included from /usr/include/boost/json/value_from.hpp:15,
                 from ../untitled/mustache/include/boost/mustache/renderer.hpp:15,
                 from ../untitled/mustache/include/boost/mustache/render.hpp:8,
                 from ../untitled/mustache/include/boost/mustache.hpp:8,
                 from ../untitled/main1.cpp:4:
/usr/include/boost/json/detail/value_from.hpp: In instantiation of ‘void boost::json::detail::value_from_helper(boost::json::value&, T&&, no_conversion_tag) [with T = const reference&]’:
/usr/include/boost/json/value_from.hpp:65:30:   required from ‘void boost::json::value_from(T&&, value&) [with T = const reference&]’
/usr/include/boost/json/value_from.hpp:120:21:   required from ‘boost::json::value boost::json::value_from(T&&, storage_ptr) [with T = const reference&]’
../untitled/mustache/include/boost/mustache/renderer.hpp:134:35:   required from ‘boost::mustache::renderer::renderer(const T1&, const T2&, boost::json::storage_ptr) [with T1 = reference; T2 = boost::json::object]’
../untitled/mustache/include/boost/mustache/render.hpp:17:24:   required from ‘void boost::mustache::render(boost::core::string_view, output_ref, const T1&, const T2&, boost::json::storage_ptr) [with T1 = reference; T2 = boost::json::object; boost::core::string_view = boost::core::basic_string_view<char>]’
../untitled/main1.cpp:85:25:   required from here
/usr/include/boost/json/detail/value_from.hpp:152:30: error: static assertion failed: No suitable tag_invoke overload found for the type
  152 |         !std::is_same<T, T>::value,
      |                              ^~~~~
/usr/include/boost/json/detail/value_from.hpp:152:30: note: ‘!(bool)std::integral_constant<bool, true>::value’ evaluates to false

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions