diff options
| author | et65 <et65@ashbringer.fr> | 2015-07-22 02:15:56 +0200 |
|---|---|---|
| committer | Naios <naios-dev@live.de> | 2015-07-22 02:18:18 +0200 |
| commit | b0255927f0c35f4c27d96ed79787d62811b23378 (patch) | |
| tree | ea77a50312de82e6e6c112ce509a59bd8f0cea52 /src/server/shared | |
| parent | 09d34e0a9bc436cc90b85e101af4a1f7039751fb (diff) | |
Core/Logging: Partial cherry-pick from commit c6ab951025b0be3b0f6
* solves differences 3.3.5 <-> 6.x because of make_unique workarround.
(cherry picked from commit c6ab951025b0be3b0f64dc8bb0703d4aa8bdb003)
Signed-off-by: Naios <naios-dev@live.de>
Diffstat (limited to 'src/server/shared')
| -rw-r--r-- | src/server/shared/Common.h | 11 | ||||
| -rw-r--r-- | src/server/shared/Logging/Log.h | 5 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/server/shared/Common.h b/src/server/shared/Common.h index dc4a4d231b1..09d64acc795 100644 --- a/src/server/shared/Common.h +++ b/src/server/shared/Common.h @@ -38,6 +38,7 @@ #include <queue> #include <sstream> #include <algorithm> +#include <memory> #include "Debugging/Errors.h" @@ -144,4 +145,14 @@ typedef std::vector<std::string> StringVector; #define MAX_QUERY_LEN 32*1024 +namespace Trinity +{ + //! std::make_unique implementation (TODO: remove this once C++14 is supported) + 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 diff --git a/src/server/shared/Logging/Log.h b/src/server/shared/Logging/Log.h index e22a06e635e..5b3782fce55 100644 --- a/src/server/shared/Logging/Log.h +++ b/src/server/shared/Logging/Log.h @@ -23,6 +23,7 @@ #include "Appender.h" #include "Logger.h" #include "StringFormat.h" +#include "Common.h" #include <boost/asio/io_service.hpp> #include <boost/asio/strand.hpp> @@ -64,7 +65,7 @@ class Log template<typename... Args> inline void outMessage(std::string const& filter, LogLevel const level, const char* fmt, Args const&... args) { - write(std::unique_ptr<LogMessage>(new LogMessage(level, filter, Trinity::StringFormat(fmt, args...)))); + write(Trinity::make_unique<LogMessage>(level, filter, Trinity::StringFormat(fmt, args...))); } template<typename... Args> @@ -73,7 +74,7 @@ class Log if (!ShouldLog("commands.gm", LOG_LEVEL_INFO)) return; - std::unique_ptr<LogMessage> msg(new LogMessage(LOG_LEVEL_INFO, "commands.gm", std::move(Trinity::StringFormat(fmt, args...)))); + std::unique_ptr<LogMessage> msg = Trinity::make_unique<LogMessage>(LOG_LEVEL_INFO, "commands.gm", std::move(Trinity::StringFormat(fmt, args...))); msg->param1 = std::to_string(account); |
