Skip to content

FMT_STRING issue w/ clang, spdlog 1.15.1 and external fmt 11.1.3 #3333

Open
@abrownsword

Description

@abrownsword

In straightforward spdlog-using code (that was changed a couple of years back to use FMT_STRING everywhere), after updating to spdlog 1.15.1 and an external fmt 11.1.3, I'm seeing this across the entire codebase. Building with Clang 19.1.6 set to C++20 using gnu stdlibc++ on Ubuntu 24.04:

error: implicit instantiation of undefined template 'fmt::detail::type_is_unformattable_for<FMT_COMPILE_STRING, char>'
     |     type_is_unformattable_for<T, char_type> _;

The line of code is (but this occurs identically on several hundred logging calls):

logger->debug(FMT_STRING("my string"));

I have seen various reported issues in fmt & spdlog repos saying this was fixed via issue fmtlib/fmt#4177 ... however I am on the latest code and am still seeing this issue. Removing FMT_STRING at any given callsite eliminates the error, but I'm not excited about making such a sweeping change across the codebase (and it would make reverting much harder). The macro still seems to be supported, however it appears to be broken.

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