Fix VS2015 constexpr error

This commit is contained in:
Simon Brand
2018-08-30 08:55:45 +01:00
parent c012dae928
commit adfdcde7cd

View File

@ -557,10 +557,10 @@ template <class E> struct expected_storage_base<void, E, false, true> {
// `T` is `void`, `E` is not trivially-destructible
template <class E> struct expected_storage_base<void, E, false, false> {
constexpr expected_storage_base() : m_val(), m_has_val(true) {}
constexpr expected_storage_base(no_init_t) : m_no_init(), m_has_val(false) {}
constexpr expected_storage_base() : m_dummy(), m_has_val(true) {}
constexpr expected_storage_base(no_init_t) : m_dummy(), m_has_val(false) {}
constexpr expected_storage_base(in_place_t) : m_val(), m_has_val(true) {}
constexpr expected_storage_base(in_place_t) : m_dummy(), m_has_val(true) {}
template <class... Args,
detail::enable_if_t<std::is_constructible<E, Args &&...>::value> * =
@ -582,10 +582,8 @@ template <class E> struct expected_storage_base<void, E, false, false> {
}
}
struct dummy {};
union {
char m_no_init;
dummy m_val;
char m_dummy;
unexpected<E> m_unexpect;
};
bool m_has_val;