6 votes

Que signifie ({}) ; en C++ ?

AFAIK {} définit une nouvelle portée, alors qu'est-ce que cela définit ?

({});

Le compilateur compile bien ce programme :

#include <iostream>
#include <string>

int main()
{
  std::string name;
  std::cout << "What is your name? ";
  {
     ({}); 
  }
  getline (std::cin, name);
  std::cout << "Hello, " << name << "!\n";
}

Lorsque je remplace ({}); avec (); le compilateur ne parvient pas à compiler le programme.

Pourquoi est-ce que ({}); fonctionnent bien, mais (); ne le fait pas ?

J'ai testé le programme sur cpp.sh. Il compile bien.

8voto

meet Points 220

({}); ne fait pas partie du standard C++. Comme l'a correctement dit @HolyBlackCat, il s'agit d'une extension du compilateur. Utilisez -pedantic-errors pour désactiver les extensions du compilateur.

Voir la démo en direct aquí lorsqu'il est compilé sur g++

Voir la démo en direct aquí lorsqu'il est compilé sur vc++ .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X