std::format
work with character arrays of unknown bound?Section: 28.5.6.4 [format.formatter.spec] Status: New Submitter: S. B. Tam Opened: 2022-05-31 Last modified: 2022-06-21
Priority: 3
View other active issues in [format.formatter.spec].
View all other issues in [format.formatter.spec].
View all issues with New status.
Discussion:
Consider
#include <format> #include <iostream> extern char str[]; auto result = std::format("{}", str); char str[] = "hello"; int main() { std::cout << result << std::endl; }
Currently MSVC STL (as well as fmtlib when fmt::format
is used instead of std::format
)
accepts the initializer of result
, while libc++ produces an error (apparently because there's no
formatter
for char[]
).
Should this be valid?
Daniel:
This issue is similar to LWG 3701, but not the same, because the latter wantstemplate<size_t N> struct formatter<charT[N], charT>
, while this one needs
template<>struct formatter<charT[], charT>
(that is, without the array bound).
[2022-06-21; Reflector poll]
Set priority to 3 after reflector poll.
Proposed resolution: