You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tested with fmt 3.0.0 release and commit 6c184ef (the latest at the time of writing) using Visual Studio 2015 Update 3.
Example program:
#include <cstdio>
#include "fmt/format.h"
int main()
{
unsigned char message[6] = "Hello";
unsigned char* pmessage = message;
std::printf("%s\n", message); // OK
fmt::print("{}\n", message); // OK
std::printf("%s\n", pmessage); // OK
fmt::print("{}\n", pmessage); // FAIL
return 0;
}
Compiler output:
1>c:\fmt_test\fmt_test\fmt\format.h(2119): error C2248: 'fmt::internal::MakeValue<Formatter>::MakeValue': cannot access private member declared in class 'fmt::internal::MakeValue<Formatter>'
1> with
1> [
1> Formatter=fmt::BasicFormatter<char,fmt::ArgFormatter<char>>
1> ]
1> c:\fmt_test\fmt_test\fmt\format.h(1186): note: see declaration of 'fmt::internal::MakeValue<Formatter>::MakeValue'
1> with
1> [
1> Formatter=fmt::BasicFormatter<char,fmt::ArgFormatter<char>>
1> ]
1> c:\fmt_test\fmt_test\fmt\format.h(2119): note: see declaration of 'fmt::internal::MakeValue<Formatter>'
1> with
1> [
1> Formatter=fmt::BasicFormatter<char,fmt::ArgFormatter<char>>
1> ]
1> c:\fmt_test\fmt_test\fmt\format.h(3469): note: see reference to function template instantiation 'fmt::internal::Value fmt::internal::ArgArray<1,true>::make<fmt::BasicFormatter<Char,fmt::ArgFormatter<Char>>,unsigned char*>(const T &)' being compiled
1> with
1> [
1> Char=char,
1> T=unsigned char *
1> ]
1> c:\fmt_test\fmt_test\fmt\format.h(3469): note: see reference to function template instantiation 'fmt::internal::Value fmt::internal::ArgArray<1,true>::make<fmt::BasicFormatter<Char,fmt::ArgFormatter<Char>>,unsigned char*>(const T &)' being compiled
1> with
1> [
1> Char=char,
1> T=unsigned char *
1> ]
1> c:\fmt_test\fmt_test\main.cpp(15): note: see reference to function template instantiation 'void fmt::print<unsigned char*>(fmt::CStringRef,unsigned char *const &)' being compiled
Changing the type of pmessage from unsigned char* to const unsigned char* will compile.
The text was updated successfully, but these errors were encountered:
Tested with fmt 3.0.0 release and commit 6c184ef (the latest at the time of writing) using Visual Studio 2015 Update 3.
Example program:
Compiler output:
Changing the type of
pmessage
fromunsigned char*
toconst unsigned char*
will compile.The text was updated successfully, but these errors were encountered: