
struct Interface {};

template<class T>
struct Base : private T
{
	void foo() {}
};

using BaseX =   Base<Interface>;

class Derived : Base<Interface>
{
	Derived()
	{
		Base<Interface>::foo(); // Error
		BaseX::foo(); // Works
	}
};

int main() {
	return 0;
}
