Powiedzmy, że mamy takie makro #define FOO(type,name) type name Którego moglibyśmy użyć FOO(int, int_var); Ale nie zawsze tak prosto: FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 Oczywiście mogliśmy zrobić: typedef std::map<int,...