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

--- Comment #2 from Karthik Nishanth <kndevl at outlook dot com> ---
Additional details:

When I add a template definition for `Test::encode()` before specialization, it
hides the specialized symbol. The snippet below produces `00000000000010e9 t
int Test::encode<(Test::Encoding)0>(int)`.

```
namespace Test {
enum class Encoding { A,
    B };

template <Encoding enc>
int encode(int);

template <Encoding enc>
int encode(int x) { return x - 1; }

template <>
int encode<Encoding::A>(int x)
{
    return x + 1;
}

int f() { return 42; }
}
```

Reply via email to