Skip to content

Commit dda067f

Browse files
committed
fix universal: fix incorrect initializer-list constructor of AtomicFlags
1 parent 525eba6 commit dda067f

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

universal/include/userver/utils/flags.hpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ class AtomicFlags final {
7070
constexpr AtomicFlags()
7171
: AtomicFlags(Enum::kNone)
7272
{}
73+
constexpr explicit AtomicFlags(Flags<Enum>);
7374
constexpr explicit AtomicFlags(Enum);
7475
constexpr AtomicFlags(std::initializer_list<Enum>);
7576

@@ -217,14 +218,19 @@ constexpr bool operator!=(Enum lhs, Flags<Enum> rhs) {
217218
return rhs != Flags<Enum>{lhs};
218219
}
219220

221+
template <typename Enum>
222+
constexpr AtomicFlags<Enum>::AtomicFlags(Flags<Enum> flags)
223+
: value_(flags.GetValue())
224+
{}
225+
220226
template <typename Enum>
221227
constexpr AtomicFlags<Enum>::AtomicFlags(Enum value)
222-
: value_(static_cast<ValueType>(value))
228+
: AtomicFlags(Flags<Enum>(value))
223229
{}
224230

225231
template <typename Enum>
226232
constexpr AtomicFlags<Enum>::AtomicFlags(std::initializer_list<Enum> values)
227-
: AtomicFlags(Enum(values))
233+
: AtomicFlags(Flags<Enum>(values))
228234
{}
229235

230236
template <typename Enum>

0 commit comments

Comments
 (0)