On Wed, Oct 03, 2018 at 12:30:28PM -0400, Nathan Sidwell wrote:
> On 10/1/18 7:47 PM, Jason Merrill wrote:
> > On Mon, Oct 1, 2018 at 6:41 PM Marek Polacek <pola...@redhat.com> wrote:
> > > 
> > > This patch implements C++20 explicit(bool), as described in:
> > > <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0892r2.html>.
> > > 
> > > I tried to follow the noexcept specifier implementation where I could, 
> > > which
> > > made the non-template parts of this fairly easy.  To make explicit(expr) 
> > > work
> > > with dependent expressions, I had to add DECL_EXPLICIT_SPEC to 
> > > lang_decl_fn,
> > > which serves as a vessel to get the explicit-specifier to 
> > > tsubst_function_decl
> > > where I substitute the dependent arguments.
> > 
> > What's the impact of that on memory consumption?  I'm nervous about
> > adding another word to most functions when it's not useful to most of
> > them.  For several similar things we've been using hash tables on the
> > side.
> 
> Iain had the same question about coroutine state.  For the moment we're
> doing the simple thing of growing lang_decl_fn.  It seems the better
> approach is a flag in the function_decl (or it's decl_lang_specific
> extension) to say 'go look over there', and a hash table you know will
> contain something.

Yeah, that is what is used e.g. for DECL_VALUE_EXPR, DECL_DEBUG_EXPR and
many other things.

        Jakub

Reply via email to