Subject: Re: [boost] Another variant type (was: [peer review queue tardiness] [was Cleaning out the Boost review queue] Review Queue mem
From: Larry Evans (cppljevans_at_[hidden])
Date: 2015-04-08 09:14:18
On 04/04/2015 07:55 PM, Eric Niebler wrote:
> On 4/4/2015 4:42 PM, Larry Evans wrote:
>> On 04/04/2015 06:25 PM, Steven Watanabe wrote:
>>> On 04/04/2015 05:20 PM, Larry Evans wrote:
>>>> On 04/04/2015 06:18 PM, Steven Watanabe wrote:
>>>>> The reason that aligned storage doesn't work has nothing to
>>>>> do with calculating the alignment.
>>>> Why does using aligned_storage not work, please?
>>> On 04/04/2015 04:06 PM, Matt Calabrese wrote:
>>>> You need to use a recursive union if you are to get some
>>>> constexpr support.
>> OK. So Matt, could you please elaborate on why constexpr support
>> requires a recursive union?
> To put an object into aligned storage requires placement new, which is
> not constexpr. Using a recursive union avoids the need for placement new.
I see the restriction about new expression here:
I can see how a new expression which is not a placement new
would be disallowed; however, I don't see a reason why
placement new would be disallowed when the void* 2nd argument
is a pointer to a constexpr aligned_union member variable.
Could you please provide a reference or explanation of why
placement new is not allowed in a constexpr?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk