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"})); // F({ "1", "2", "3", "4" }); // Non // F(std::list<std::string>{ "1", "2", "3", "4" }); // Non }
Passing an initialization list to a macro Archive du 21/05/2015 le 27/08/2019
lang/cpp/preprocesseur.1576706671.txt.gz · Dernière modification : 2019/12/18 23:04 de root