Cantera / cantera

Chemical kinetics, thermodynamics, and transport tool suite
https://cantera.org
Other
582 stars 342 forks source link

Compilation failure with fmt=10.0 #1537

Closed ischoegl closed 12 months ago

ischoegl commented 12 months ago

Problem description

{fmt} 10.0 introduces a new compilation failure

Steps to reproduce

  1. Install fmt=10.0 in conda environment
  2. Run scons build
  3. See error
In file included from src/base/AnyMap.cpp:6:
In file included from include/cantera/base/AnyMap.h:10:
In file included from include/cantera/base/ctexceptions.h:15:
In file included from include/cantera/base/fmt.h:11:
In file included from /opt/homebrew/Caskroom/miniforge/base/envs/ctdev/include/fmt/format.h:49:
/opt/homebrew/Caskroom/miniforge/base/envs/ctdev/include/fmt/core.h:1690:3: error: static_assert failed due to requirement 'formattable' "Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt"
  static_assert(
  ^
/opt/homebrew/Caskroom/miniforge/base/envs/ctdev/include/fmt/core.h:1711:10: note: in instantiation of function template specialization 'fmt::detail::make_value<fmt::basic_format_context<fmt::appender, char>, const std::__bit_const_reference<std::vector<bool>> &>' requested here
  return make_value<Context>(val);
         ^
/opt/homebrew/Caskroom/miniforge/base/envs/ctdev/include/fmt/core.h:1825:23: note: in instantiation of function template specialization 'fmt::detail::make_arg<true, fmt::basic_format_context<fmt::appender, char>, fmt::detail::type::custom_type, const std::__bit_const_reference<std::vector<bool>> &, 0>' requested here
        data_{detail::make_arg<
                      ^
/opt/homebrew/Caskroom/miniforge/base/envs/ctdev/include/fmt/core.h:1844:10: note: in instantiation of function template specialization 'fmt::format_arg_store<fmt::basic_format_context<fmt::appender, char>, std::__bit_const_reference<std::vector<bool>>>::format_arg_store<const std::__bit_const_reference<std::vector<bool>> &>' requested here
  return {FMT_FORWARD(args)...};
         ^
/opt/homebrew/Caskroom/miniforge/base/envs/ctdev/include/fmt/core.h:2817:28: note: in instantiation of function template specialization 'fmt::make_format_args<fmt::basic_format_context<fmt::appender, char>, const std::__bit_const_reference<std::vector<bool>> &>' requested here
  return vformat(fmt, fmt::make_format_args(args...));
                           ^
src/base/AnyMap.cpp:392:28: note: in instantiation of function template specialization 'fmt::format<const std::__bit_const_reference<std::vector<bool>> &>' requested here
        string xstr = fmt::format("{}", x);
                           ^
src/base/AnyMap.cpp:431:9: note: in instantiation of function template specialization 'YAML::emitFlowVector<bool>' requested here
        emitFlowVector(out, rhs.asVector<bool>());
        ^
1 error generated.
scons: *** [build/src/base/AnyMap.os] Error 1
scons: building terminated because of errors.

System information