Erben von Konstruktoren und Initialisierern mit geschweiften Klammern

Ich verstehe nicht, warum Sie keine Klasse kompilieren können, die sowohl einen Member (nicht standardmäßig konstruierbar) mit einem Klammer- oder Gleichheitsinitialisierer als auch einen geerbten Konstruktor enthält. g ++ sagt:

test.cpp: 22: 15: Fehler: Verwendung der gelöschten Funktion 'Derived :: Derived (float)'
Derived d (1.2f);

test.cpp: 16: 13: Hinweis: "Derived :: Derived (float)" wird implizit gelöscht
weil die Standarddefinition falsch wäre:
using Base :: Base;

test.cpp: 16: 13: Fehler: Keine passende Funktion für den Aufruf von 'NoDefCTor :: NoDefCTor ()'
test.cpp: 5: 1: hinweis: kandidat:
NoDefCTor :: NoDefCTor (int) NoDefCTor (int) {}

Code, der nicht kompiliert werden kann (unter g ++ 5.1):

struct NoDefCTor
{
    NoDefCTor(int) {}
};

struct Base
{
    Base(float) {}
};

struct Derived : Base
{
    using Base::Base;
    NoDefCTor n2{ 4 };
};

int main()
{
    Derived d(1.2f);
}

Code, der kompiliert, abernie benutzt NoDefCTor 's Standardkonstruktor (obwohl er anscheinend gebraucht wird!):

struct NoDefCTor
{
    NoDefCTor(int) {}
    NoDefCTor() = default;
};

struct Base
{
    Base(float) {}
};

struct Derived : Base
{
    using Base::Base;
    NoDefCTor n2{ 4 };
};

int main()
{
    Derived d(1.2f);
}

Ich mag die Idee, einen Standardkonstruktor zu haben, wenn ich keinen brauche, nicht wirklich. Nebenbei bemerkt, beide Versionen lassen sich auf MSVC14 problemlos kompilieren (und verhalten).