Assuming the following layout:
class Base { protected: Base(P1 p1, P2 p2, P3 p3); public: virtual void SomeMethod() = 0; } class Derived : public B
According to 12.9/4, "Inheriting constructors", when saying using X::X,
using X::X
A constructor so declared has the same access as the corresponding constructor in X.
So the inherited constructor is also protected.
protected