Как надежно отформатировать std::vector с поддержкой диапазона fmt?C++

Программы на C++. Форум разработчиков
Anonymous
Как надежно отформатировать std::vector с поддержкой диапазона fmt?

Сообщение Anonymous »

Я получаю непоследовательное поведение при попытке отформатировать вектор логических значений в разных средах:

Код: Выделить всё

#include 
#include 
#include 

int main() {
std::vector vec = {true, false, true};
fmt::print("Vector contents: {}\n", vec);
return 0;
}
Это отлично работает в нескольких средах:
  • Compiler Explorer: Clang 19.1.0
  • Проводник компилятора: магистраль GCC
  • Проводник компилятора: ствол Clang
Но происходит сбой:

Но происходит сбой:

p>

[*]Локальная macOS (M1): Clang 19.1.1 clang++ -std=c++23 -I библиотеки/fmt/include
[*]Compiler Explorer: Zig Trunk

При этой ошибке:

Код: Выделить всё

error: implicit instantiation of undefined template 'fmt::detail::type_is_unformattable_for'
Все тесты используют fmt из Trunk и C++23.
Что вызывает эту несогласованность и как ее исправить?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ge-support

Вернуться в «C++»