https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93155

--- Comment #3 from Tobias Loew <tobias.loew at steag dot com> ---
After reading the standard carefully, I figured out that this is not an error
since the rewrite as function templates is ambiguous:

template<class... T> struct mp_similar_impl {};

template<class T> 
void f(mp_similar_impl<T, T>) {}

template<template<class...> class L, class... T1, class... T2> 
void f(mp_similar_impl<L<T1...>, L<T2...>>) {}

int main() {
    f(mp_similar_impl<std::list<int>, std::list<int>>{});  // error ambiguous
}

Reply via email to