Commit 7ded05f3 authored by gabi's avatar gabi

log_msg faster move

parent e2cd9285
......@@ -50,28 +50,16 @@ struct log_msg
raw(other.raw),
formatted(other.formatted) {}
log_msg(log_msg&& other)
{
swap(*this, other);
}
void swap(log_msg& l, log_msg& r)
{
using std::swap;
swap(l.logger_name, r.logger_name);
swap(l.level, r.level);
swap(l.time, r.time);
swap(l.tm_time, r.tm_time);
swap(l.raw, r.raw);
swap(l.formatted, r.formatted);
}
log_msg(log_msg&& other) :
logger_name(std::move(other.logger_name)),
level(other.level),
time(std::move(other.time)),
tm_time(other.tm_time),
raw(std::move(other.raw)),
formatted(std::move(other.formatted)) {}
log_msg& operator=(log_msg&& other) = delete;
log_msg& operator=(log_msg other)
{
swap(*this, other);
return *this;
}
void clear()
......@@ -86,8 +74,6 @@ struct log_msg
std::tm tm_time;
fast_oss raw;
fast_oss formatted;
};
}
}
......@@ -42,10 +42,10 @@ public:
static const unsigned short stack_size = STACK_SIZE;
stack_buf() :_v(), _stack_size(0) {}
~stack_buf() = default;
stack_buf(const stack_buf& other):stack_buf(other, delegate_copy_move {})
stack_buf(const stack_buf& other) :stack_buf(other, delegate_copy_or_move {})
{}
stack_buf(stack_buf&& other):stack_buf(other, delegate_copy_move {})
stack_buf(stack_buf&& other) :stack_buf(other, delegate_copy_or_move {})
{
other.clear();
}
......@@ -109,9 +109,9 @@ public:
}
private:
struct delegate_copy_move {};
struct delegate_copy_or_move {};
template<class T1>
stack_buf(T1&& other, delegate_copy_move)
stack_buf(T1&& other, delegate_copy_or_move)
{
_stack_size = other._stack_size;
if (other.vector_used())
......
......@@ -96,9 +96,6 @@ private:
void _variadic_log(details::line_logger&l, const First& first, const Rest&... rest);
void _log_msg(details::log_msg& msg);
};
}
#include "./details/logger_impl.h"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment