This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 07/28/2012 11:28 AM, Paolo Carlini wrote:Indeed, this is the problem.as the testcase shows (merge of 53624 & 54104), in case of local types (possibly synthesized for a lambda) we check for the default template arguments of the synthesized template parameters according to the rules for *types* (instead of those for functions) and we spuriously reject. As far as I can see we should just return early in such cases, because we already checked upstream, thus I figured out logic that apparently works, but I'm not sure it's the most precise and concise we can have.
It seems to me that the problem here is that the template parameters in question are for an enclosing scope, not the temploid under consideration.
We shouldn't be doing the default argument ordering check (or the parameter pack order check) at all for non-primary templates.Good, thanks. I didn't realize that we can use is_primary. Thus for example the below passes testing: is it Ok or we can implement the general idea in a different way?
Thanks! Paolo.
Attachment:
patch_53624_2
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |