Rakete1111 marked an inline comment as done.
Rakete1111 added inline comments.


================
Comment at: test/SemaCXX/cxx1z-class-template-argument-deduction.cpp:360-361
+  struct Type {
+    Typo(); // expected-error{{deduction guide must be declared in the same 
scope}}
+    // expected-error@-1{{deduction guide declaration without trailing return 
type}}
+  };
----------------
aaron.ballman wrote:
> These errors are pretty unfortunate -- they don't really help the user to 
> understand what's gone wrong here. They're an improvement over the crash, but 
> I think we should try to make the errors more useful if we can.
> 
> Why is `Typo()` being treated as a deduction guide? Perhaps we could look to 
> see if there is a `->` before making that determination?
> Perhaps we could look to see if there is a -> before making that 
> determination?

Yes that would be possible. The diagnostic would change for the following code:

```
template <typename>
struct Foo {};

Foo();// -> Foo<int>; 
// currently: deduction guide missing ->
// after: C++ requires type specifier for every declaration
```

Is that acceptable? Or I guess I could restrict this to partial deduction 
guides in classes.


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57540/new/

https://reviews.llvm.org/D57540



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to