It means such and such is something you should avoid most of the time, but not something you should avoid all the
time. For example, you will end up using these “evil” things whenever they are “the least evil of the evil
alternatives.” It’s a joke, okay? Don’t take it too seriously.
The real purpose of the term (“Ah ha,” I hear you saying, “there really is a hidden motive!”; you’re right:
there is) is to shake new C++ programmers free from some of their old thinking. For example, C programmers who are new
to C++ often use pointers, arrays and/or
#define
more than they should. The FAQ lists those as “evil” to give new
C++ programmers a vigorous (and droll!) shove in the right direction. The goal of farcical things like “pointers are
evil” is to convince new C++ programmers that C++ really isn’t “just like C except for those silly //
comments.”
Now let’s get real here. I’m not suggesting macros or arrays or pointers are right up there with murder or kidnapping.
Well, maybe pointers. (Just kidding!) So don’t get all hyper about the word “evil”: it’s supposed to sound a little
outrageous. And don’t look for a technically precise definition of exactly when something is or isn’t “evil”: there
isn’t one.
Items labeled as “evil” (macros, arrays, pointers, etc.) aren’t always bad in all situations. When they are the
“least bad” of the alternatives, use them!
No comments:
Post a Comment