From 92d40c71086a83bc294e52f957ebc310cd49b7b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrzej=20Krzemie=C5=84ski?= Date: Thu, 27 Oct 2016 09:21:24 +0200 Subject: [PATCH] Fixed in_place_init tags --- include/boost/optional/optional.hpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/include/boost/optional/optional.hpp b/include/boost/optional/optional.hpp index 6a843b2..75b7af9 100644 --- a/include/boost/optional/optional.hpp +++ b/include/boost/optional/optional.hpp @@ -59,11 +59,21 @@ namespace boost { namespace optional_ns { -class in_place_init_t {}; // a tag for in-place initialization -const in_place_init_t in_place_init; // of contained value +// a tag for in-place initialization of contained value +class in_place_init_t +{ + struct init_tag{}; + explicit in_place_init_t(init_tag){} +}; +const in_place_init_t in_place_init ((in_place_init_t::init_tag())); -class in_place_init_if_t {}; // a tag for conditional in-place -const in_place_init_if_t in_place_init_if; // init of contained value +// a tag for conditional in-place initialization of contained value +class in_place_init_if_t +{ + struct init_tag{}; + explicit in_place_init_if_t(init_tag){} +}; +const in_place_init_if_t in_place_init_if ((in_place_init_if_t::init_tag())); } // namespace optional_ns