mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-12 14:59:44 +03:00
libcamera: base: log: Remove move constructor
C++17 guarantees move and copy elision in certain cases, such as when returning a prvalue of the same type as the return type of the function. This is what the `_log()` functions do, thus there is no need for the move constructor, so remove it. Furthermore, do not just remove the implementation, but instead delete it as well. Signed-off-by: Barnabás Pőcze <pobrn@protonmail.com> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
f72c76eb6e
commit
d40250e03b
2 changed files with 1 additions and 22 deletions
|
@ -61,8 +61,6 @@ public:
|
|||
LogMessage(const char *fileName, unsigned int line,
|
||||
const LogCategory &category, LogSeverity severity,
|
||||
const std::string &prefix = std::string());
|
||||
|
||||
LogMessage(LogMessage &&);
|
||||
~LogMessage();
|
||||
|
||||
std::ostream &stream() { return msgStream_; }
|
||||
|
@ -75,7 +73,7 @@ public:
|
|||
const std::string msg() const { return msgStream_.str(); }
|
||||
|
||||
private:
|
||||
LIBCAMERA_DISABLE_COPY(LogMessage)
|
||||
LIBCAMERA_DISABLE_COPY_AND_MOVE(LogMessage)
|
||||
|
||||
void init(const char *fileName, unsigned int line);
|
||||
|
||||
|
|
|
@ -866,25 +866,6 @@ LogMessage::LogMessage(const char *fileName, unsigned int line,
|
|||
init(fileName, line);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Move-construct a log message
|
||||
* \param[in] other The other message
|
||||
*
|
||||
* The move constructor is meant to support the _log() functions. Thanks to copy
|
||||
* elision it will likely never be called, but C++11 only permits copy elision,
|
||||
* it doesn't enforce it unlike C++17. To avoid potential link errors depending
|
||||
* on the compiler type and version, and optimization level, the move
|
||||
* constructor is defined even if it will likely never be called, and ensures
|
||||
* that the destructor of the \a other message will not output anything to the
|
||||
* log by setting the severity to LogInvalid.
|
||||
*/
|
||||
LogMessage::LogMessage(LogMessage &&other)
|
||||
: msgStream_(std::move(other.msgStream_)), category_(other.category_),
|
||||
severity_(other.severity_)
|
||||
{
|
||||
other.severity_ = LogInvalid;
|
||||
}
|
||||
|
||||
void LogMessage::init(const char *fileName, unsigned int line)
|
||||
{
|
||||
/* Log the timestamp, severity and file information. */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue