Construtor padrão declarado pelo usuário + inicializadores na classe! = Construtor fornecido pelo usuário? [duplicado]

Esta questão já tem uma resposta aqui:

Por que o C ++ requer um construtor padrão fornecido pelo usuário para construir um objeto const padrão? 5 respostas

oDocumentação do Clang explica perfeitamente que

Se uma classe ou struct não possui um construtor padrão definido pelo usuário, o C ++ não permite que você construa uma instância padrão da instância como esta ([dcl.init], p9)

A lógica é que, se um objeto const não for inicializado corretamente, ele não poderá ser alterado posteriormente. O código a seguir tem apenas um usuáriodeclarado construtor padrão paraTest, mas todos os seus membros têm inicializadores em classe,

#include<iostream>

class Test
{
public:
    Test() = default;
    void print() const { std::cout << i << "\n"; }
private:
    int i = 42;   // will propagate to the default constructor!
};

int main()
{
    Test const t; // <-- Clang chokes on the const keyword, g++ does not
    t.print();    // prints 42
}

então a razão para tambémfornecendo o construtor padrão parece supérfluo para mim. E, de fato, o g ++ 4.8.1 compila sem problemas (Exemplo Online), ApesarClang <= 3,2 não.

Questões: por que a combinação de iniciadores completos da classe + construtor padrão declarado pelo usuário não é suficiente para construir um objeto const padrão? Existe uma correção em andamento para o C ++ 14 Standard?

ATUALIZAR: alguém pode tentar no Clang 3.3 / 3.4 para ver se isso foi corrigido comparado ao Clang 3.2?

questionAnswers(1)

yourAnswerToTheQuestion