C++ Logo

STD-DISCUSSION

Advanced search

Subject: Re: Placement new into static storage violates strict pointer safety?
From: language.lawyer_at_[hidden]
Date: 2019-08-23 18:00:41


[basic.stc] is known to be completely broken.

Consider:

        struct { int i; int j; } s;
        int main()
        {
                ::new(&s.j) int{};
        }

The newly-created int object is a subobject of `s` ([intro.object]/2)
Since it was created using new-expression, it has dynamic storage duration ([basic.stc]/2).
But [basic.stc.inherit]/1 says "The storage duration of subobjects and reference members is that of their complete object", so it has static storage duration.


STD-DISCUSSION list run by herb.sutter at gmail.com

Older Archives on Google Groups