Erreur du compilateur C3852

'member' ayant le type 'type' : l’initialisation d’agrégation n’a pas pu initialiser ce membre

Une tentative a été effectuée pour affecter une initialisation par défaut dans le cadre d’une initialisation d’agrégation à un membre de données qui ne peut pas recevoir d’initialisation par défaut dans une initialisation d’agrégation.

Les exemples suivants génèrent l’erreur C3852 :

// C3852.cpp
struct S
{
   short s;
};

struct S1
{
   int i;
   const S s;
};

struct S2
{
   int i;
   char & rc;
};

int main()
{
   S1 s1 = { 1 };   // C3852 const member
   // try the following line instead
   // S1 s1 = { 1, 2 };

   S2 s2 = { 2 };   // C3852 reference member
   // try the following line instead
   // char c = 'a';
   S2 s2 = { 2, c };
}