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: