Clang Error de compilación con inicialización predeterminada [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Realmente necesito implementar un constructor proporcionado por el usuario para objetos constantes? 3 respuestas

Considere el siguiente ejemplo:

#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;
}

Ver ejemplo en vivo

Esto compila con g ++ pero no compila con clang ++, probé con el siguiente comando:clang++ -std=c++11 -O0 main.cpp && ./a.out

Error de compilación de clang:

main.cpp: 19: 13: error: la inicialización predeterminada de un objeto de tipo const 'const A' requiere un constructor predeterminado proporcionado por el usuario

Aprendí deEsta pregunta de desbordamiento de pila, que las clases que no son POD obtienen el constructor predeterminado. Esto incluso no es necesario aquí porque la variable tiene una inicialización predeterminada de estilo C ++ 11

¿Por qué esto no es para el sonido metálico? Por queA() = default;@ no funciona también?

Respuestas a la pregunta(2)

Su respuesta a la pregunta