すいません。途中で書き込んでしまいました。

以下のようなクラスを作ったのですが、
derivedがImp::baseを継承しているため、
インクルードの順番が固定されてしまいます。(Impliment.hが先でないといけない)

こういったクラスは使う人から見て嫌がられるでしょうか。
ご意見をいただけるとありがたいです。

Impliment.h

class Impliment
{
public:
class base {}
};


Interface.h

template<class Imp>
class Interface
{
private:
class derived : public Imp::base {}
}