Skip to content

Commit cf9d604

Browse files
authored
Merge pull request #1129 from PowerGridModel/feature/sonar-cloud-warnings-3
Sonar cloud issues: resource management participation + if consteval
2 parents d30ae63 + 6c63215 commit cf9d604

File tree

3 files changed

+20
-6
lines changed

3 files changed

+20
-6
lines changed

power_grid_model_c/power_grid_model/include/power_grid_model/common/common.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ template <typename T> constexpr T map_to_cyclic_range(T value, T period) {
116116
if constexpr (std::is_integral_v<T>) {
117117
return static_cast<T>((value % period + period) % period);
118118
} else {
119-
if (std::is_constant_evaluated()) {
119+
if consteval {
120120
T quotient = value / period;
121121
Idx const floored_quotient =
122122
(quotient >= T{0}) ? static_cast<Idx>(quotient) : static_cast<Idx>(quotient) - 1;

power_grid_model_c/power_grid_model/include/power_grid_model/common/multi_threaded_logging.hpp

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,23 @@ class MultiThreadedLoggerImpl : public MultiThreadedLogger {
2020
class ThreadLogger : public LoggerType {
2121
public:
2222
ThreadLogger(MultiThreadedLoggerImpl& parent) : parent_{&parent} {}
23-
ThreadLogger(ThreadLogger const&) = default;
24-
ThreadLogger& operator=(ThreadLogger const&) = default;
25-
ThreadLogger(ThreadLogger&&) noexcept = default;
26-
ThreadLogger& operator=(ThreadLogger&&) noexcept = default;
23+
ThreadLogger(ThreadLogger const& other) : LoggerType{other}, parent_{other.parent_} {};
24+
ThreadLogger& operator=(ThreadLogger const& other) {
25+
if (this != &other) {
26+
LoggerType::operator=(other);
27+
parent_ = other.parent_;
28+
}
29+
return *this;
30+
};
31+
ThreadLogger(ThreadLogger&& other) noexcept
32+
: LoggerType{std::move(static_cast<LoggerType>(other))}, parent_{other.parent_} {};
33+
ThreadLogger& operator=(ThreadLogger&& other) noexcept {
34+
if (this != &other) {
35+
parent_ = std::exchange(other.parent_, nullptr);
36+
LoggerType::operator=(std::move(other));
37+
}
38+
return *this;
39+
};
2740
~ThreadLogger() noexcept override {
2841
try {
2942
sync();

power_grid_model_c/power_grid_model/include/power_grid_model/common/timer.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ class Timer {
2626
Timer(Logger& log, LogEvent code) : log_{&log}, code_{code}, start_{Clock::now()} {}
2727

2828
Timer(Timer const&) = delete;
29-
Timer(Timer&&) = default;
29+
Timer(Timer&& other) noexcept
30+
: log_{std::exchange(other.log_, nullptr)}, code_{other.code_}, start_{other.start_} {}
3031
Timer& operator=(Timer const&) = delete;
3132

3233
Timer& operator=(Timer&& timer) noexcept {

0 commit comments

Comments
 (0)