A. A preprocessor macro expansion cannot work when user-defined types are passed to it as arguments.
B. Since the preprocessor does the macro expansion and not the compiler, the build process takes a longer period of time.
C. While expanding #define macros, the preprocessor does no type checking on the arguments to the macro.
D. A preprocessor macro expansion incurs a performance overhead at runtime.
E. It is simple to step into a template function code during the debugging process.
B C E