gdb 8.x - g++ 7.x compatibility

Stephan Bergmann sbergman@redhat.com
Mon Feb 5 09:16:00 GMT 2018


On 05.02.2018 06:06, Simon Marchi wrote:
> On 2018-02-04 02:17 PM, Martin Sebor wrote:
>> Printing the suffix is unhelpful because it leads to unnecessary
>> differences in diagnostics (even in non-template contexts).  For
>> templates with non-type template parameters there is no difference
>> between, say A<1>, A<1U>, A<(unsigned) 1>, or even A<Green> when
>> Green is an enumerator that evaluates to 1, so including the suffix
>> serves no useful purpose.
> 
> This is the part I don't understand.  In Roman's example, spelling
> foo<10> and foo<10u> resulted in two different instantiations of the
> template, with different code.  So that means it can make a difference,
> can't it?

Yes, for non-type template parameters whose type contains a placeholder 
type (i.e., "auto IVAL" in the earlier example), which is a new feature 
of C++17.

My understanding is that printing the suffix would be essential in such 
cases.



More information about the Gcc mailing list