https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113320

            Bug ID: 113320
           Summary: libstdc++ accepts std::format(std::move(runtime_fmt),
                    42);
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hewillk at gmail dot com
  Target Milestone: ---

The new constructor of libstdc++'s basic_format_string accepts an rvalue
reference to a runtime-format-string instead of a value, which makes the
following incorrectly accepted:

  #include <format>

  int main() {
    auto runtime_fmt = std::runtime_format("{}");
    auto str = std::format(std::move(runtime_fmt), 42); // should error
  }

https://godbolt.org/z/zjW7shba1

Reply via email to