aboutsummaryrefslogtreecommitdiff
path: root/libbutl/optional.mxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-11-20 13:54:00 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-11-20 14:08:03 +0200
commit47e147c212dd858a23beb6c86708fa1cccd90136 (patch)
treefab82b0afef94d72810bcad9c72a591b87504159 /libbutl/optional.mxx
parentdf1f6dac3b80093c39e850f0d07431b921328f80 (diff)
Improve optional class template implementation
Diffstat (limited to 'libbutl/optional.mxx')
-rw-r--r--libbutl/optional.mxx4
1 files changed, 2 insertions, 2 deletions
diff --git a/libbutl/optional.mxx b/libbutl/optional.mxx
index 0f18c11..470c608 100644
--- a/libbutl/optional.mxx
+++ b/libbutl/optional.mxx
@@ -43,7 +43,7 @@ LIBBUTL_MODEXPORT namespace butl
template <typename T>
struct optional_data<T, false>
{
- struct empty {char x;}; // Note: byte size is important to GCC.
+ struct empty {char x[sizeof(T)];}; // Note: data member important to GCC.
union
{
@@ -86,7 +86,7 @@ LIBBUTL_MODEXPORT namespace butl
template <typename T>
struct optional_data<T, true>
{
- struct empty {char x;}; // Note: byte size is important to GCC.
+ struct empty {char x[sizeof(T)];}; // Note: data member important to GCC.
union
{