diff options
| author | John Hodge <tpg@mutabah.net> | 2016-08-10 20:28:30 +0800 |
|---|---|---|
| committer | John Hodge <tpg@mutabah.net> | 2016-08-10 20:28:30 +0800 |
| commit | e21656f68bab1e3021be97c4708c9854f4da76e1 (patch) | |
| tree | b826db97469e0db2c100f9e421aa987dbc553c10 /src/include | |
| parent | fd82195a241a49debb19d7a44442c66ab37d29bb (diff) | |
| download | mrust-e21656f68bab1e3021be97c4708c9854f4da76e1.tar.gz | |
MIR - Match construction draft, cleanup
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/tagged_union.hpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/include/tagged_union.hpp b/src/include/tagged_union.hpp index e392815e..1e319b08 100644 --- a/src/include/tagged_union.hpp +++ b/src/include/tagged_union.hpp @@ -204,7 +204,7 @@ class _name TU_EXP _inherit { \ Tag m_tag; \ union DataUnion { TU_UNION_FIELDS _variants DataUnion() {} ~DataUnion() {} } m_data;/* */ public:\ - _name(): m_tag(TAG_##_def) { m_data._def = TU_DATANAME(_def)(); }/* + _name(): m_tag(TAG_##_def) { new (&m_data._def) TU_DATANAME(_def)(); }/* */ _name(const _name&) = delete;/* */ _name(_name&& x) noexcept: m_tag(x.m_tag) TU_EXP _extra_move { switch(m_tag) { case TAGDEAD: break; TU_MOVE_CASES _variants } x.m_tag = TAGDEAD; }/* */ _name& operator =(_name&& x) { switch(m_tag) { case TAGDEAD: break; TU_DEST_CASES _variants } m_tag = x.m_tag; TU_EXP _extra_assign switch(m_tag) { case TAGDEAD: break; TU_MOVE_CASES _variants }; return *this; }/* |
