Clang Erro de compilação com inicialização padrão [duplicado]

Esta pergunta já tem uma resposta aqui:

ealmente preciso implementar o construtor fornecido pelo usuário para objetos cons 3 respostas

Considere o seguinte exemplo:

#include <iostream>
#include <type_traits>

struct A
{
  //A() = default; // does neither compile with, nor without this line
  //A(){};         // does compile with this line
  int someVal{ 123 };


  void foobar( int )
  {
  };
};


int main()
{
    const A a;
    std::cout << "isPOD = " << std::is_pod<A>::value << std::endl;
    std::cout << "a.someVal = " <<a.someVal << std::endl;
}

Veja exemplo ao vivo

Isso compila com g ++, mas não compila com clang ++, tentado com o seguinte comando:clang++ -std=c++11 -O0 main.cpp && ./a.out

Erro de compilação do clang:

main.cpp: 19: 13: error: a inicialização padrão de um objeto do tipo const 'const A' requer um construtor padrão fornecido pelo usuário

Aprendi comThis Stack Overflow Pergunta, que as classes não-POD obtêm o construtor padrão. Isso nem é necessário aqui porque a variável possui inicialização padrão no estilo c ++ 11

Por que isso não acontece? PorqueA() = default; não funciona também?

questionAnswers(2)

yourAnswerToTheQuestion