Skip to content

Commit 00c2710

Browse files
Merge pull request #9 from tukl-msd/fix/id_variant
Fix/id variant
2 parents 0352317 + 74b9f80 commit 00c2710

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

include/DRAMUtils/DRAMUtils/util/id_variant.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,23 @@ class IdVariant<id_field_name, util::type_sequence<Ts...>>
8888
}
8989

9090
public:
91+
// Default constructor
92+
IdVariant() = default;
93+
94+
// copy/move constructors
95+
IdVariant(const IdVariant&) = default;
96+
IdVariant(IdVariant&&) noexcept = default;
97+
98+
// copy/move assignment
99+
IdVariant& operator=(const IdVariant&) = default;
100+
IdVariant& operator=(IdVariant&&) noexcept = default;
101+
102+
// Explicit forward constructor
103+
template <typename T, typename = std::enable_if_t<!std::is_same_v<std::decay_t<T>, IdVariant> || std::is_lvalue_reference_v<T>>>
104+
explicit IdVariant(T&& variant) {
105+
setVariant(std::forward<T>(variant));
106+
}
107+
91108
// Compile time check for MemSpec type
92109
template<typename T>
93110
void setVariant(T&& variant) {

0 commit comments

Comments
 (0)