Я пытаюсь использовать шаблон нетипичного типа с пользовательским типом.
struct T {};
template <auto value> struct U {};
template <auto value>
void f (U <value>) {}
int main()
{
constexpr T t;
f (U<1>{}); // OK
f<t> (U<t>{}); // OK
f (U<t>{}); // Error
}
Сбой при выводе аргумента шаблона, транк gcc с -std = c ++ 2a получает
yop.cpp:10:5: note: template argument deduction/substitution failed:
yop.cpp:19:21: note: mismatched types ‘T’ and ‘const T’
19 | f (U<t>{}); // Error
| ^
Я что-то упустил или это ошибка?