This is the mail archive of the 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]

Re: Elementary question about complete_type vs tsubst_flags_t


On 07/10/2015 03:42 PM, Jason Merrill wrote:
On 07/10/2015 07:26 AM, Paolo Carlini wrote:
I have an old question about an issue which I noticed a while ago, and
for example clearly shows up in c++/62085: in a few places in pt.c we
call complete_type from functions getting a tsubst_flags_t. Clearly,
complete_type often calls instantiate_class_template_1, which, in turn,
often calls tsubst with an hard-coded tf_error. Thus possible errors
coming from an initial tf_none.

Yep. Those errors are outside the "immediate context" of the substitution, so SFINAE doesn't apply to them. In C++ we don't back out of a class instantiation.
Good. Thus in practice the "immediate context" theory boils down to those irrevocable instantiations, that wasn't completely clear to me, thanks.

Does that imply that c++/62085 should be closed? The compilers I have here aren't all in agreement: EDG rejects the testcase like GCC but recent clangs don't, likewise SolarisStudio.

Thanks again,

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]