C ++ 11 herdando construtores e modificadores de acesso

Supondo o seguinte layout:

class Base
{
protected:
    Base(P1 p1, P2 p2, P3 p3);

public:
    virtual void SomeMethod() = 0;
}

class Derived : public Base
{
public:
    using Base::Base;

public:
    virtual void SomeMethod() override;
};

Devo poder especificarDerivedconstrutor como público aqui? VC ++ fornece o seguinte erro:

não pode acessar o membro protegido declarado na classe 'Derivado'
compilador gerou 'Derived :: Derived' aqui [aponta para a linha Base :: Base em uso]
ver declaração de 'Derivado'

ou seja, está ignorando o modificador de acesso acima do construtor herdado.

Isso é uma limitação do recurso? Não faz sentido para oBase classe para ter um construtor público, pois nunca pode ser instanciado diretamente (devido ao método virtual puro).

questionAnswers(1)

yourAnswerToTheQuestion