Prefer Templates to Macros

Because macros do not behave as function calls but merely as text substitutions, they might exhibit strange behaviors during complex calls. For instance:

	#define mul (t) t*t*tmul(3+3) gives 24 though the expected result is 216.

Templates, on the other hand, follow the semantics of function definition and function call. They also enforce type checking unlike macros:

template type mul_t (type t){return t*t*t;}mul_t(3+3) gives expected result of 216.
Share the Post:
Share on facebook
Share on twitter
Share on linkedin


Recent Articles: