Remove new macro, update example with correct way to specify fmt lib namespace when fmt_lib namespace alias cannot be used.

This commit is contained in:
Kevin Slattery 2022-05-12 18:55:08 -05:00
parent 5f5e70e96e
commit d3dee23e6c
2 changed files with 9 additions and 18 deletions

View File

@ -262,7 +262,14 @@ struct my_type
: i(i){}; : i(i){};
}; };
FMTLIB_BEGIN_NAMESPACE
// Using a namespace alias like fmt_lib is not allowed when extending an existing namespace,
// but the correct namespace can still be selected with the SPDLOG_USE_STD_FORMAT macro.
#ifdef SPDLOG_USE_STD_FORMAT
namespace std {
#else
namespace fmt {
#endif
template<> template<>
struct formatter<my_type> : formatter<std::string> struct formatter<my_type> : formatter<std::string>
{ {
@ -271,7 +278,7 @@ struct formatter<my_type> : formatter<std::string>
return format_to(ctx.out(), "[my_type i={}]", my.i); return format_to(ctx.out(), "[my_type i={}]", my.i);
} }
}; };
FMTLIB_END_NAMESPACE }
void user_defined_example() void user_defined_example()
{ {

View File

@ -126,13 +126,6 @@ using sink_ptr = std::shared_ptr<sinks::sink>;
using sinks_init_list = std::initializer_list<sink_ptr>; using sinks_init_list = std::initializer_list<sink_ptr>;
using err_handler = std::function<void(const std::string &err_msg)>; using err_handler = std::function<void(const std::string &err_msg)>;
#ifdef SPDLOG_USE_STD_FORMAT #ifdef SPDLOG_USE_STD_FORMAT
# ifndef FMTLIB_BEGIN_NAMESPACE
# define FMTLIB_BEGIN_NAMESPACE \
namespace std {
# define FMTLIB_END_NAMESPACE \
}
# endif
namespace fmt_lib = std; namespace fmt_lib = std;
using string_view_t = std::string_view; using string_view_t = std::string_view;
@ -153,16 +146,7 @@ template<typename... Args>
using wformat_string_t = std::wstring_view; using wformat_string_t = std::wstring_view;
# endif # endif
# define SPDLOG_BUF_TO_STRING(x) x # define SPDLOG_BUF_TO_STRING(x) x
#else // use fmt lib instead of std::format #else // use fmt lib instead of std::format
# ifndef FMTLIB_BEGIN_NAMESPACE
# define FMTLIB_BEGIN_NAMESPACE \
namespace fmt {
# define FMTLIB_END_NAMESPACE \
}
# endif
namespace fmt_lib = fmt; namespace fmt_lib = fmt;
using string_view_t = fmt::basic_string_view<char>; using string_view_t = fmt::basic_string_view<char>;