Re: const qualifier for function type

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Nathan Ridge <zeratul976@xxxxxxxxxxx> writes:

>> > Is the code ill-formed and gcc thus non-conforming?
>>
>> Those are two separate questions, 
>  
> Doesn't accepting invalid code make a compiler non-conforming?

There are a number of cases where the standard doesn't require a
conforming implementation to do anything in particular for an ill-formed
program.


>> but as far as I can tell, this code is
>> indeed ill-formed, and gcc should give an error for it. Please consider
>> filing an accepts-valid bug as described at http://gcc.gnu.org/bugs/ .
>
> I have filed http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48409.

Thanks.

>> > I ask because libstdc++ uses specializations like this for std::is_function in ,
>> > and as a result, clang refuses to compile anything that includes .
>>
>> I don't see that in the current . I see something
>> different in : the function is a template parameter. The
>> const qualifier is permitted if the function type is a
>> pointer-to-member. I think that may be possible in . In
>> that case, the const qualifier is not an error, and any use of it with
>> something that is not a pointer-to-member should be dropped due to
>> SFINAE. But I am not a C++ expert, and I could be wrong here.
>
> I was referring to the following:
>  
>   template<typename>
>     struct is_function
>     : public false_type { };
>   template<typename _Res, typename... _ArgTypes>
>     struct is_function<_Res(_ArgTypes...)>
>     : public true_type { };
>   template<typename _Res, typename... _ArgTypes>
>     struct is_function<_Res(_ArgTypes...) const>
>     : public true_type { };

Yes, me too, but that is very different from the example in your
original message.  Your example was about template specialization.  The
code quoted above is template definitions.

Ian


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux