Closed
Description
$ cat /tmp/a.ii
namespace a {
template <class> struct pair;
}
template <class _T2> pair() -> pair<_T2>;
$ clang++ "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-x" "c++" a.ii -fsyntax-only
a.ii:4:22: error: no template named 'pair'; did you mean 'a::pair'?
4 | template <class _T2> pair() -> pair<_T2>;
| ^~~~
| a::pair
a.ii:2:25: note: 'a::pair' declared here
2 | template <class> struct pair;
| ^
a.ii:4:32: error: no template named 'pair'; did you mean 'a::pair'?
4 | template <class _T2> pair() -> pair<_T2>;
| ^~~~
| a::pair
a.ii:2:25: note: 'a::pair' declared here
2 | template <class> struct pair;
| ^
a.ii:4:22: error: deduction guide must be declared in the same scope as template 'a::pair'
4 | template <class _T2> pair() -> pair<_T2>;
| ^
a.ii:2:25: note: template is declared here
2 | template <class> struct pair;
| ^
clang++: ../../clang/lib/Sema/SemaDeclCXX.cpp:11468: bool clang::Sema::CheckDeductionGuideDeclarator(Declarator &, QualType &, StorageClass &): Assertion `Qualifiers && "expected QualifiedTemplate"' failed.