https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103684
Bug ID: 103684
Summary: Ambiguous template template overload resolution
Product: gcc
Version: 11.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: weidmann at acm dot org
Target Milestone: ---
The following code compiles with -std=c++11, but does not with -std=c++17.
Works with clang.
#include <list>
#include <set>
template<template<typename, typename> typename T> constexpr std::size_t hello()
{
return 2;
}
template<template<typename, typename, typename> typename T> constexpr
std::size_t hello()
{
return 3;
}
void foo()
{
auto i = hello<std::list>();
auto j = hello<std::set>();
}