diff options
Diffstat (limited to 'src/lib/netlist/nl_lists.h')
-rw-r--r-- | src/lib/netlist/nl_lists.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/lib/netlist/nl_lists.h b/src/lib/netlist/nl_lists.h index 39f4343be30..5443cd86c86 100644 --- a/src/lib/netlist/nl_lists.h +++ b/src/lib/netlist/nl_lists.h @@ -54,6 +54,7 @@ namespace netlist { constexpr pqentry_t() noexcept : m_exec_time(), m_object(nullptr) { } constexpr pqentry_t(const Time t, const Element o) noexcept : m_exec_time(t), m_object(o) { } +#if 0 ~pqentry_t() = default; constexpr pqentry_t(const pqentry_t &e) noexcept = default; constexpr pqentry_t(pqentry_t &&e) noexcept = default; @@ -65,7 +66,7 @@ namespace netlist std::swap(m_exec_time, other.m_exec_time); std::swap(m_object, other.m_object); } - +#endif struct QueueOp { inline static constexpr bool less(const pqentry_t &lhs, const pqentry_t &rhs) noexcept @@ -110,7 +111,7 @@ namespace netlist std::size_t capacity() const noexcept { return m_list.capacity() - 1; } bool empty() const noexcept { return (m_end == &m_list[1]); } - void push(T e) noexcept + void push(T && e) noexcept { /* Lock */ lock_guard_type lck(m_lock); @@ -120,7 +121,7 @@ namespace netlist *(i+1) = *(i); m_prof_sortmove.inc(); } - *(i+1) = e; + *(i+1) = std::move(e); ++m_end; m_prof_call.inc(); } @@ -129,7 +130,7 @@ namespace netlist const T &top() const noexcept { return *(m_end-1); } template <class R> - void remove(const R elem) noexcept + void remove(const R &elem) noexcept { /* Lock */ lock_guard_type lck(m_lock); @@ -145,7 +146,7 @@ namespace netlist } } - void retime(T elem) noexcept + void retime(T && elem) noexcept { /* Lock */ lock_guard_type lck(m_lock); @@ -155,7 +156,7 @@ namespace netlist { if (QueueOp::equal(*i, elem)) // partial equal! { - *i = elem; + *i = std::move(elem); while (QueueOp::less(*(i-1), *i)) { std::swap(*(i-1), *i); |