Outils pour utilisateurs

Outils du site


lang:cpp:preprocesseur

Ceci est une ancienne révision du document !


Utiliser les std::initializer_list avec des macros

Le préprocesseur a du mal avec les {}. Il faut mettre le type explicitement et entourer le tout de parenthèse.

void f(std::list<std::string>) {}
#define F(XXXX) f(XXXX)
 
int main()
{
  std::list<std::string> c;
  f(c);
  f({"1", "2", "3", "4"});
  F((std::list<std::string>{"1", "2", "3", "4"}));
  F(std::list<std::string>({"1", "2", "3", "4"}));
}

Passing an initialization list to a macro Archive du 21/05/2015 le 27/08/2019

lang/cpp/preprocesseur.1571324606.txt.gz · Dernière modification : 2019/10/17 17:03 de root