e6ef927e6b
Passing a function pointer to fmt::ptr results in: In file included from /home/mac/git/fmt/test/gmock/gmock.h:238, from /home/mac/git/fmt/test/format-test.cc:31: .../fmt/test/format-test.cc: In member function ‘virtual void FormatterTest_FormatPointer_Test::TestBody()’: .../fmt/test/format-test.cc:1486:56: error: no matching function for call to ‘ptr(void (&)(int, double, std::__cxx11::string))’ format("{}", fmt::ptr(function_pointer_test))); with GCC and Clang. Let's add an overload to support that usage. Unfortunately, MSVC would consider the overload to be ambiguous for unknown reasons: D:\a\fmt\fmt\test\format-test.cc(1485,1): error C2668: 'fmt::v7::ptr': ambiguous call to overloaded function [D:\a\fmt\build\test\format-test.vcxproj] D:\a\fmt\fmt\include\fmt/format.h(3742,60): message : could be 'const void *fmt::v7::ptr<void,int,double,std::string>(T (__cdecl *)(int,double,std::string))' [D:\a\fmt\build\test\format-test.vcxproj] with [ T=void ] D:\a\fmt\fmt\include\fmt/format.h(3735,42): message : or 'const void *fmt::v7::ptr<void(int,double,std::string)>(T (__cdecl *))' [D:\a\fmt\build\test\format-test.vcxproj] with [ T=void (int,double,std::string) ] D:\a\fmt\fmt\test\format-test.cc(1486,1): message : while trying to match the argument list '(overloaded-function)' [D:\a\fmt\build\test\format-test.vcxproj] but luckily this means that the overload is unnecessary in that case anyway, so we can just make it conditional. |
||
---|---|---|
.. | ||
_static | ||
_templates | ||
basic-bootstrap | ||
bootstrap | ||
api.rst | ||
build.py | ||
CMakeLists.txt | ||
conf.py | ||
contents.rst | ||
fmt.less | ||
index.rst | ||
python-license.txt | ||
syntax.rst | ||
usage.rst |