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

[Bug c++/54336] [c++0x] diagnostics for functions with arg-dependent return types have bad signatures


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54336

--- Comment #2 from Andy Lutomirski <luto at mit dot edu> 2012-08-20 23:21:32 UTC ---
Fair enough.  Here's a better example:

struct A { int method(); };

template<typename T> auto func(T x) -> decltype(x.method())
{
  bogus(x);
}

int main() { func(A()); }

The error is:

decltype_return.cc: In instantiation of 'decltype (x.method()) func(T) [with T
= A; decltype (x.method()) = int]':
decltype_return.cc:8:22:   required from here
decltype_return.cc:5:3: error: 'bogus' was not declared in this scope
   bogus(x);
   ^

'decltype (x.method())' is still meaningless in that context.  Even just 'auto
func(T) [with ...; auto = int]' might be less puzzling.

(This is a very minor issue -- I just found it puzzling when I hit it earlier
today in an STL error message.)


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