Я пытаюсь использовать нестандартный шаблон с пользовательским типом.
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
| ^
Я что-то упустил или это баг?