https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119620

--- Comment #5 from 康桓瑋 <hewillk at gmail dot com> ---
(In reply to Jonathan Wakely from comment #1)
> (In reply to 康桓瑋 from comment #0)
> > I don't know why the standard sometimes constrains emplace(), sometimes only
> > constrains insert(), and sometimes constrains neither.
> 
> flat_set::emplace is not specified to unconditionally construct an object
> outside the container (even though for some calls to emplace it does need to
> do that).
>

Thanks for the explanation.
This might be a silly question, even if we construct the object T *internally*,
doesn't that still mean we need is_constructible_v<value_type, Args...> to
guarantee that T can be constructed via Args...?

Reply via email to