use make_unique
This commit is contained in:
parent
f4bbe8b2b3
commit
ebce97947d
@ -174,4 +174,17 @@ using filename_t = std::string;
|
||||
{ \
|
||||
err_handler_("Unknown exeption in logger"); \
|
||||
}
|
||||
|
||||
//
|
||||
// make_unique support
|
||||
//
|
||||
#if __cplusplus >= 201402L // C++14 and beyond
|
||||
using std::make_unique;
|
||||
#else
|
||||
template<typename T, typename... Args>
|
||||
std::unique_ptr<T> make_unique(Args &&... args)
|
||||
{
|
||||
return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
|
||||
}
|
||||
#endif
|
||||
} // namespace spdlog
|
||||
|
@ -547,7 +547,7 @@ public:
|
||||
|
||||
std::unique_ptr<formatter> clone() const override
|
||||
{
|
||||
return std::unique_ptr<formatter>(new pattern_formatter(pattern_, pattern_time_type_, eol_));
|
||||
return spdlog::make_unique<pattern_formatter>(pattern_, pattern_time_type_, eol_);
|
||||
}
|
||||
|
||||
void format(const details::log_msg &msg, fmt::memory_buffer &dest) override
|
||||
@ -588,146 +588,145 @@ private:
|
||||
|
||||
void handle_flag_(char flag)
|
||||
{
|
||||
using flag_formatter_ptr = std::unique_ptr<details::flag_formatter>;
|
||||
switch (flag)
|
||||
{
|
||||
// logger name
|
||||
case 'n':
|
||||
formatters_.push_back(flag_formatter_ptr(new details::name_formatter()));
|
||||
formatters_.push_back(make_unique<details::name_formatter>());
|
||||
break;
|
||||
|
||||
case 'l':
|
||||
formatters_.push_back(flag_formatter_ptr(new details::level_formatter()));
|
||||
formatters_.push_back(make_unique<details::level_formatter>());
|
||||
break;
|
||||
|
||||
case 'L':
|
||||
formatters_.push_back(flag_formatter_ptr(new details::short_level_formatter()));
|
||||
formatters_.push_back(make_unique<details::short_level_formatter>());
|
||||
break;
|
||||
|
||||
case ('t'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::t_formatter()));
|
||||
formatters_.push_back(make_unique<details::t_formatter>());
|
||||
break;
|
||||
|
||||
case ('v'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::v_formatter()));
|
||||
formatters_.push_back(make_unique<details::v_formatter>());
|
||||
break;
|
||||
|
||||
case ('a'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::a_formatter()));
|
||||
formatters_.push_back(make_unique<details::a_formatter>());
|
||||
break;
|
||||
|
||||
case ('A'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::A_formatter()));
|
||||
formatters_.push_back(make_unique<details::A_formatter>());
|
||||
break;
|
||||
|
||||
case ('b'):
|
||||
case ('h'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::b_formatter()));
|
||||
formatters_.push_back(make_unique<details::b_formatter>());
|
||||
break;
|
||||
|
||||
case ('B'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::B_formatter()));
|
||||
formatters_.push_back(make_unique<details::B_formatter>());
|
||||
break;
|
||||
case ('c'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::c_formatter()));
|
||||
formatters_.push_back(make_unique<details::c_formatter>());
|
||||
break;
|
||||
|
||||
case ('C'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::C_formatter()));
|
||||
formatters_.push_back(make_unique<details::C_formatter>());
|
||||
break;
|
||||
|
||||
case ('Y'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::Y_formatter()));
|
||||
formatters_.push_back(make_unique<details::Y_formatter>());
|
||||
break;
|
||||
|
||||
case ('D'):
|
||||
case ('x'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::D_formatter()));
|
||||
formatters_.push_back(make_unique<details::D_formatter>());
|
||||
break;
|
||||
|
||||
case ('m'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::m_formatter()));
|
||||
formatters_.push_back(make_unique<details::m_formatter>());
|
||||
break;
|
||||
|
||||
case ('d'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::d_formatter()));
|
||||
formatters_.push_back(make_unique<details::d_formatter>());
|
||||
break;
|
||||
|
||||
case ('H'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::H_formatter()));
|
||||
formatters_.push_back(make_unique<details::H_formatter>());
|
||||
break;
|
||||
|
||||
case ('I'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::I_formatter()));
|
||||
formatters_.push_back(make_unique<details::I_formatter>());
|
||||
break;
|
||||
|
||||
case ('M'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::M_formatter()));
|
||||
formatters_.push_back(make_unique<details::M_formatter>());
|
||||
break;
|
||||
|
||||
case ('S'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::S_formatter()));
|
||||
formatters_.push_back(make_unique<details::S_formatter>());
|
||||
break;
|
||||
|
||||
case ('e'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::e_formatter()));
|
||||
formatters_.push_back(make_unique<details::e_formatter>());
|
||||
break;
|
||||
|
||||
case ('f'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::f_formatter()));
|
||||
formatters_.push_back(make_unique<details::f_formatter>());
|
||||
break;
|
||||
case ('F'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::F_formatter()));
|
||||
formatters_.push_back(make_unique<details::F_formatter>());
|
||||
break;
|
||||
|
||||
case ('E'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::E_formatter()));
|
||||
formatters_.push_back(make_unique<details::E_formatter>());
|
||||
break;
|
||||
|
||||
case ('p'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::p_formatter()));
|
||||
formatters_.push_back(make_unique<details::p_formatter>());
|
||||
break;
|
||||
|
||||
case ('r'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::r_formatter()));
|
||||
formatters_.push_back(make_unique<details::r_formatter>());
|
||||
break;
|
||||
|
||||
case ('R'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::R_formatter()));
|
||||
formatters_.push_back(make_unique<details::R_formatter>());
|
||||
break;
|
||||
|
||||
case ('T'):
|
||||
case ('X'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::T_formatter()));
|
||||
formatters_.push_back(make_unique<details::T_formatter>());
|
||||
break;
|
||||
|
||||
case ('z'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::z_formatter()));
|
||||
formatters_.push_back(make_unique<details::z_formatter>());
|
||||
break;
|
||||
|
||||
case ('+'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::full_formatter()));
|
||||
formatters_.push_back(make_unique<details::full_formatter>());
|
||||
break;
|
||||
|
||||
case ('P'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::pid_formatter()));
|
||||
formatters_.push_back(make_unique<details::pid_formatter>());
|
||||
break;
|
||||
|
||||
case ('i'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::i_formatter()));
|
||||
formatters_.push_back(make_unique<details::i_formatter>());
|
||||
break;
|
||||
|
||||
case ('^'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::color_start_formatter()));
|
||||
formatters_.push_back(make_unique<details::color_start_formatter>());
|
||||
break;
|
||||
|
||||
case ('$'):
|
||||
formatters_.push_back(flag_formatter_ptr(new details::color_stop_formatter()));
|
||||
formatters_.push_back(make_unique<details::color_stop_formatter>());
|
||||
break;
|
||||
|
||||
default: // Unknown flag appears as is
|
||||
formatters_.push_back(flag_formatter_ptr(new details::ch_formatter('%')));
|
||||
formatters_.push_back(flag_formatter_ptr(new details::ch_formatter(flag)));
|
||||
formatters_.push_back(make_unique<details::ch_formatter>('%'));
|
||||
formatters_.push_back(make_unique<details::ch_formatter>(flag));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -758,7 +757,7 @@ private:
|
||||
{
|
||||
if (!user_chars)
|
||||
{
|
||||
user_chars = std::unique_ptr<details::aggregate_formatter>(new details::aggregate_formatter());
|
||||
user_chars = spdlog::make_unique<details::aggregate_formatter>();
|
||||
}
|
||||
user_chars->add_ch(*it);
|
||||
}
|
||||
|
@ -113,7 +113,7 @@ public:
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(flusher_mutex_);
|
||||
std::function<void()> clbk = std::bind(®istry::flush_all, this);
|
||||
periodic_flusher_.reset(new periodic_worker(clbk, interval));
|
||||
periodic_flusher_ = make_unique<periodic_worker>(clbk, interval);
|
||||
}
|
||||
|
||||
void set_error_handler(log_err_handler handler)
|
||||
|
Loading…
Reference in New Issue
Block a user