RE: const qualifier for function type

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

 



> From: iant@xxxxxxxxxx
> Nathan Ridge 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?
 
 
> 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.
 

> > 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 { };

 
Regards,
Nate. 		 	   		  



[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