================ @@ -0,0 +1,30 @@ +// RUN: %clang_cc1 -fsyntax-only -std=c++2b -verify %s + +namespace std { +struct rv {}; + +template <bool B, typename T> struct enable_if; +template <typename T> struct enable_if<true, T> { typedef T type; }; + +template <typename U, typename T> +typename enable_if<__is_convertible(T, rv), U>::type forward(T &); +template <typename U, typename T> +typename enable_if<!__is_convertible(T, rv), U &>::type forward(T &); +} + +struct Foo { + template <class T> + constexpr auto operator[](this T &&self, auto... i) // expected-note {{candidate template ignored: substitution failure [with T = Foo &, i:auto = <>]: member '_evaluate' used before its declaration}} + -> decltype(_evaluate(std::forward<T>(self), i...)) { ---------------- cor3ntin wrote:
```suggestion -> decltype(_evaluate(self, i...)) { ``` https://github.com/llvm/llvm-project/pull/104328 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits