Closed
Description
CTAD on this example:
template <class T1>
struct outer_foo {
template <class T2>
struct inner_foo {
inner_foo(const T2& t);
};
};
void f() {
auto X = outer_foo<int>::inner_foo(1);
}
fails with
<source>:10:12: error: no viable constructor or deduction guide for deduction of template arguments of 'inner_foo'
auto X = outer_foo<int>::inner_foo(1);
^
<source>:4:10: note: candidate template ignored: could not match 'inner_foo<T2>' against 'int'
struct inner_foo {
^
<source>:4:10: note: candidate function template not viable: requires 0 arguments, but 1 was provided
1 error generated.
Compiler returned: 1