Нетиповой параметр шаблона source_location C++20
Я пытался найти способы использованияstd::source_location::current()
, когда я наткнулся на этот конкретный ответ в теме.
Я попробовал запустить код на godbolt с помощьюx86-64 gcc 13.1
и-O3 -std=c++20 -Wall -Wextra -Wpedantic
, но он даже не компилируется.
Код:
#include <format>
#include <iostream>
#include <source_location>
template<typename... Targs, auto location = std::source_location::current()>
auto tprintf(char const* format, Targs const&... args) -> void {
std::cout
<< std::format("{}:{}: ", location.file_name(), location.line())
<< std::format(format, args...);
}
auto main() -> int {
tprintf("hello {}", "world"); // prints "example.cpp:12: hello world"
}
Я делаю что-то неправильно? Если нет, то почему это вообще было принято как ответ, если оно не компилируется?