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

error: no matching function for call to ‘format_to(fmt::v9::memory_buffer&, const char [5], std::basic_string<char>)’ #3304

Closed
Zorono opened this issue Feb 12, 2023 · 1 comment
Labels

Comments

@Zorono
Copy link

Zorono commented Feb 12, 2023

Hello everybody,
i am facing the same problem as #1957 & #1949 (8de9681) with gcc 12.2.0
please note that i am using the upstream version of fmt

/path/to/zUtils/src/natives.cpp:330:31: error: no matching function for call to ‘format_to(fmt::v9::memory_buffer&, const char [5], std::basic_string<char>)’
  330 |                 fmt::format_to(str_writer, "{:s}",
      |                 ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
  331 |                         format_str.substr(spec_offset, spec_pos - spec_offset));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /path/to/zUtils/libs/fmt/include/fmt/format.h:49,
                 from /path/to/zUtils/src/./natives.h:28,
                 from /path/to/zUtils/src/natives.cpp:17:
/path/to/zUtils/libs/fmt/include/fmt/core.h:2921:17: note: candidate: ‘template<class OutputIt, class ... T, typename std::enable_if<fmt::v9::detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> > OutputIt fmt::v9::format_to(OutputIt, fmt::v9::format_string<T ...>, T&& ...)’
 2921 | FMT_INLINE auto format_to(OutputIt out, format_string<T...> fmt, T&&... args)
      |                 ^~~~~~~~~
/path/to/zUtils/libs/fmt/include/fmt/core.h:2921:17: note:   template argument deduction/substitution failed:
/path/to/zUtils/libs/fmt/include/fmt/core.h:320:69: error: no type named ‘type’ in ‘struct std::enable_if<false, int>’
  320 | #  define FMT_ENABLE_IF(...) fmt::enable_if_t<(__VA_ARGS__), int> = 0
      |                                                                     ^
/path/to/zUtils/libs/fmt/include/fmt/core.h:2920:11: note: in expansion of macro ‘FMT_ENABLE_IF’
 2920 |           FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value)>
      |           ^~~~~~~~~~~~~
In file included from /path/to/zUtils/src/./natives.h:28,
                 from /path/to/zUtils/src/natives.cpp:17:
/path/to/zUtils/libs/fmt/include/fmt/format.h:4290:17: note: candidate: ‘template<class OutputIt, class Locale, class ... T, typename std::enable_if<(fmt::v9::detail::is_output_iterator<OutputIt, char>::value && fmt::v9::detail::is_locale<Locale>::value), int>::type <anonymous> > OutputIt fmt::v9::format_to(OutputIt, const Locale&, fmt::v9::format_string<T ...>, T&& ...)’
 4290 | FMT_INLINE auto format_to(OutputIt out, const Locale& loc,
      |                 ^~~~~~~~~
/path/to/zUtils/libs/fmt/include/fmt/format.h:4290:17: note:   template argument deduction/substitution failed:
In file included from /path/to/zUtils/libs/fmt/include/fmt/format.h:49,
                 from /path/to/zUtils/src/./natives.h:28,
                 from /path/to/zUtils/src/natives.cpp:17:
/path/to/zUtils/libs/fmt/include/fmt/core.h:320:69: error: no type named ‘type’ in ‘struct std::enable_if<false, int>’
  320 | #  define FMT_ENABLE_IF(...) fmt::enable_if_t<(__VA_ARGS__), int> = 0
      |                                                                     ^
/path/to/zUtils/libs/fmt/include/fmt/format.h:4288:11: note: in expansion of macro ‘FMT_ENABLE_IF’
 4288 |           FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value&&
      |           ^~~~~~~~~~~~~
/path/to/zUtils/src/natives.cpp:357:31: error: no matching function for call to ‘format_to(fmt::v9::memory_buffer&, std::basic_string<char>&, std::string)’
  357 |                 fmt::format_to(str_writer, fmt_str, amx_GetCppString(amx, param));
      |                 ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /path/to/zUtils/libs/fmt/include/fmt/format.h:49,
                 from /path/to/zUtils/src/./natives.h:28,
                 from /path/to/zUtils/src/natives.cpp:17:
/path/to/zUtils/libs/fmt/include/fmt/core.h:2921:17: note: candidate: ‘template<class OutputIt, class ... T, typename std::enable_if<fmt::v9::detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> > OutputIt fmt::v9::format_to(OutputIt, fmt::v9::format_string<T ...>, T&& ...)’
 2921 | FMT_INLINE auto format_to(OutputIt out, format_string<T...> fmt, T&&... args)
      |                 ^~~~~~~~~
/path/to/zUtils/libs/fmt/include/fmt/core.h:2921:17: note:   template argument deduction/substitution failed:
/path/to/zUtils/libs/fmt/include/fmt/core.h:320:69: error: no type named ‘type’ in ‘struct std::enable_if<false, int>’
  320 | #  define FMT_ENABLE_IF(...) fmt::enable_if_t<(__VA_ARGS__), int> = 0
      |                                                                     ^
/path/to/zUtils/libs/fmt/include/fmt/core.h:2920:11: note: in expansion of macro ‘FMT_ENABLE_IF’
 2920 |           FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value)>
      |           ^~~~~~~~~~~~~
In file included from /path/to/zUtils/src/./natives.h:28,
                 from /path/to/zUtils/src/natives.cpp:17:
/path/to/zUtils/libs/fmt/include/fmt/format.h:4290:17: note: candidate: ‘template<class OutputIt, class Locale, class ... T, typename std::enable_if<(fmt::v9::detail::is_output_iterator<OutputIt, char>::value && fmt::v9::detail::is_locale<Locale>::value), int>::type <anonymous> > OutputIt fmt::v9::format_to(OutputIt, const Locale&, fmt::v9::format_string<T ...>, T&& ...)’
 4290 | FMT_INLINE auto format_to(OutputIt out, const Locale& loc,
      |                 ^~~~~~~~~
/path/to/zUtils/libs/fmt/include/fmt/format.h:4290:17: note:   template argument deduction/substitution failed:
In file included from /path/to/zUtils/libs/fmt/include/fmt/format.h:49,
                 from /path/to/zUtils/src/./natives.h:28,
                 from /path/to/zUtils/src/natives.cpp:17:
/path/to/zUtils/libs/fmt/include/fmt/core.h:320:69: error: no type named ‘type’ in ‘struct std::enable_if<false, int>’
  320 | #  define FMT_ENABLE_IF(...) fmt::enable_if_t<(__VA_ARGS__), int> = 0
      |                                                                     ^
/path/to/zUtils/libs/fmt/include/fmt/format.h:4288:11: note: in expansion of macro ‘FMT_ENABLE_IF’
 4288 |           FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value&&
      |           ^~~~~~~~~~~~~
/path/to/zUtils/src/natives.cpp:372:31: error: no matching function for call to ‘format_to(fmt::v9::memory_buffer&, std::basic_string<char>&, cell)’
  372 |                 fmt::format_to(str_writer, fmt_str, static_cast<int>(*param_addr));
      |                 ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /path/to/zUtils/libs/fmt/include/fmt/format.h:49,
                 from /path/to/zUtils/src/./natives.h:28,
                 from /path/to/zUtils/src/natives.cpp:17:
/path/to/zUtils/libs/fmt/include/fmt/core.h:2921:17: note: candidate: ‘template<class OutputIt, class ... T, typename std::enable_if<fmt::v9::detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> > OutputIt fmt::v9::format_to(OutputIt, fmt::v9::format_string<T ...>, T&& ...)’
 2921 | FMT_INLINE auto format_to(OutputIt out, format_string<T...> fmt, T&&... args)
      |                 ^~~~~~~~~
/path/to/zUtils/libs/fmt/include/fmt/core.h:2921:17: note:   template argument deduction/substitution failed:
/path/to/zUtils/libs/fmt/include/fmt/core.h:320:69: error: no type named ‘type’ in ‘struct std::enable_if<false, int>’
  320 | #  define FMT_ENABLE_IF(...) fmt::enable_if_t<(__VA_ARGS__), int> = 0
      |                                                                     ^
/path/to/zUtils/libs/fmt/include/fmt/core.h:2920:11: note: in expansion of macro ‘FMT_ENABLE_IF’
 2920 |           FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value)>
      |           ^~~~~~~~~~~~~
In file included from /path/to/zUtils/src/./natives.h:28,
                 from /path/to/zUtils/src/natives.cpp:17:
/path/to/zUtils/libs/fmt/include/fmt/format.h:4290:17: note: candidate: ‘template<class OutputIt, class Locale, class ... T, typename std::enable_if<(fmt::v9::detail::is_output_iterator<OutputIt, char>::value && fmt::v9::detail::is_locale<Locale>::value), int>::type <anonymous> > OutputIt fmt::v9::format_to(OutputIt, const Locale&, fmt::v9::format_string<T ...>, T&& ...)’
 4290 | FMT_INLINE auto format_to(OutputIt out, const Locale& loc,
      |                 ^~~~~~~~~
/path/to/zUtils/libs/fmt/include/fmt/format.h:4290:17: note:   template argument deduction/substitution failed:
In file included from /path/to/zUtils/libs/fmt/include/fmt/format.h:49,
                 from /path/to/zUtils/src/./natives.h:28,
                 from /path/to/zUtils/src/natives.cpp:17:
/path/to/zUtils/libs/fmt/include/fmt/core.h:320:69: error: no type named ‘type’ in ‘struct std::enable_if<false, int>’
  320 | #  define FMT_ENABLE_IF(...) fmt::enable_if_t<(__VA_ARGS__), int> = 0
      |                                                                     ^
/path/to/zUtils/libs/fmt/include/fmt/format.h:4288:11: note: in expansion of macro ‘FMT_ENABLE_IF’
 4288 |           FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value&&
      |           ^~~~~~~~~~~~~
/path/to/zUtils/src/natives.cpp:387:31: error: no matching function for call to ‘format_to(fmt::v9::memory_buffer&, std::basic_string<char>&, float&)’
  387 |                 fmt::format_to(str_writer, fmt_str, amx_ctof(*param_addr));
      |                 ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /path/to/zUtils/libs/fmt/include/fmt/format.h:49,
                 from /path/to/zUtils/src/./natives.h:28,
                 from /path/to/zUtils/src/natives.cpp:17:
/path/to/zUtils/libs/fmt/include/fmt/core.h:2921:17: note: candidate: ‘template<class OutputIt, class ... T, typename std::enable_if<fmt::v9::detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> > OutputIt fmt::v9::format_to(OutputIt, fmt::v9::format_string<T ...>, T&& ...)’
 2921 | FMT_INLINE auto format_to(OutputIt out, format_string<T...> fmt, T&&... args)
      |                 ^~~~~~~~~
/path/to/zUtils/libs/fmt/include/fmt/core.h:2921:17: note:   template argument deduction/substitution failed:
/path/to/zUtils/libs/fmt/include/fmt/core.h:320:69: error: no type named ‘type’ in ‘struct std::enable_if<false, int>’
  320 | #  define FMT_ENABLE_IF(...) fmt::enable_if_t<(__VA_ARGS__), int> = 0
      |                                                                     ^
/path/to/zUtils/libs/fmt/include/fmt/core.h:2920:11: note: in expansion of macro ‘FMT_ENABLE_IF’
 2920 |           FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value)>
      |           ^~~~~~~~~~~~~
In file included from /path/to/zUtils/src/./natives.h:28,
                 from /path/to/zUtils/src/natives.cpp:17:
/path/to/zUtils/libs/fmt/include/fmt/format.h:4290:17: note: candidate: ‘template<class OutputIt, class Locale, class ... T, typename std::enable_if<(fmt::v9::detail::is_output_iterator<OutputIt, char>::value && fmt::v9::detail::is_locale<Locale>::value), int>::type <anonymous> > OutputIt fmt::v9::format_to(OutputIt, const Locale&, fmt::v9::format_string<T ...>, T&& ...)’
 4290 | FMT_INLINE auto format_to(OutputIt out, const Locale& loc,
      |                 ^~~~~~~~~
/path/to/zUtils/libs/fmt/include/fmt/format.h:4290:17: note:   template argument deduction/substitution failed:
In file included from /path/to/zUtils/libs/fmt/include/fmt/format.h:49,
                 from /path/to/zUtils/src/./natives.h:28,
                 from /path/to/zUtils/src/natives.cpp:17:
/path/to/zUtils/libs/fmt/include/fmt/core.h:320:69: error: no type named ‘type’ in ‘struct std::enable_if<false, int>’
  320 | #  define FMT_ENABLE_IF(...) fmt::enable_if_t<(__VA_ARGS__), int> = 0
      |                                                                     ^
/path/to/zUtils/libs/fmt/include/fmt/format.h:4288:11: note: in expansion of macro ‘FMT_ENABLE_IF’
 4288 |           FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value&&
      |           ^~~~~~~~~~~~~
/path/to/zUtils/src/natives.cpp:397:23: error: no matching function for call to ‘format_to(fmt::v9::memory_buffer&, const char [5], std::basic_string<char>)’
  397 |         fmt::format_to(str_writer, "{:s}", format_str.substr(spec_offset));
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /path/to/zUtils/libs/fmt/include/fmt/format.h:49,
                 from /path/to/zUtils/src/./natives.h:28,
                 from /path/to/zUtils/src/natives.cpp:17:
/path/to/zUtils/libs/fmt/include/fmt/core.h:2921:17: note: candidate: ‘template<class OutputIt, class ... T, typename std::enable_if<fmt::v9::detail::is_output_iterator<OutputIt, char>::value, int>::type <anonymous> > OutputIt fmt::v9::format_to(OutputIt, fmt::v9::format_string<T ...>, T&& ...)’
 2921 | FMT_INLINE auto format_to(OutputIt out, format_string<T...> fmt, T&&... args)
      |                 ^~~~~~~~~
/path/to/zUtils/libs/fmt/include/fmt/core.h:2921:17: note:   template argument deduction/substitution failed:
/path/to/zUtils/libs/fmt/include/fmt/core.h:320:69: error: no type named ‘type’ in ‘struct std::enable_if<false, int>’
  320 | #  define FMT_ENABLE_IF(...) fmt::enable_if_t<(__VA_ARGS__), int> = 0
      |                                                                     ^
/path/to/zUtils/libs/fmt/include/fmt/core.h:2920:11: note: in expansion of macro ‘FMT_ENABLE_IF’
 2920 |           FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value)>
      |           ^~~~~~~~~~~~~
In file included from /path/to/zUtils/src/./natives.h:28,
                 from /path/to/zUtils/src/natives.cpp:17:
/path/to/zUtils/libs/fmt/include/fmt/format.h:4290:17: note: candidate: ‘template<class OutputIt, class Locale, class ... T, typename std::enable_if<(fmt::v9::detail::is_output_iterator<OutputIt, char>::value && fmt::v9::detail::is_locale<Locale>::value), int>::type <anonymous> > OutputIt fmt::v9::format_to(OutputIt, const Locale&, fmt::v9::format_string<T ...>, T&& ...)’
 4290 | FMT_INLINE auto format_to(OutputIt out, const Locale& loc,
      |                 ^~~~~~~~~
/path/to/zUtils/libs/fmt/include/fmt/format.h:4290:17: note:   template argument deduction/substitution failed:
In file included from /path/to/zUtils/libs/fmt/include/fmt/format.h:49,
                 from /path/to/zUtils/src/./natives.h:28,
                 from /path/to/zUtils/src/natives.cpp:17:
/path/to/zUtils/libs/fmt/include/fmt/core.h:320:69: error: no type named ‘type’ in ‘struct std::enable_if<false, int>’
  320 | #  define FMT_ENABLE_IF(...) fmt::enable_if_t<(__VA_ARGS__), int> = 0
      |                                                                     ^
/path/to/zUtils/libs/fmt/include/fmt/format.h:4288:11: note: in expansion of macro ‘FMT_ENABLE_IF’
 4288 |           FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, char>::value&&
      |           ^~~~~~~~~~~~~

@vitaut
Copy link
Contributor

vitaut commented Feb 12, 2023

You should wrap the buffer in back_insert_iterator if you want to append to it:

fmt::format_to(std::back_inserter(str_writer), "{:s}", ...)

See https://fmt.dev/latest/api.html#core-api.

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

No branches or pull requests

2 participants