summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-08-10 20:28:30 +0800
committerJohn Hodge <tpg@mutabah.net>2016-08-10 20:28:30 +0800
commite21656f68bab1e3021be97c4708c9854f4da76e1 (patch)
treeb826db97469e0db2c100f9e421aa987dbc553c10 /src/include
parentfd82195a241a49debb19d7a44442c66ab37d29bb (diff)
downloadmrust-e21656f68bab1e3021be97c4708c9854f4da76e1.tar.gz
MIR - Match construction draft, cleanup
Diffstat (limited to 'src/include')
-rw-r--r--src/include/tagged_union.hpp2
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; }/*