I have some questions about next code:

```cpp
template<typename T>
class Base;

template<typename T, typename P>
class Base<T(P)> {

};

template<typename T>
class Derived;

template<typename T, typename P>
class Derived<T(P)> : public Base<T(P)> {

};

```

1. Class specialization `Derived<T(P)>` inherits from class `template<typename T> class Base` or from class `template<typename T, typename P> class Base<T(P)>`?
2. What the name of when I'm binding template parameters `T` and `P` of class specialization `Derived<T(P)>` with template parameter `T` of `class Base`.