jlconlin
jlconlin

Reputation: 15074

What dangers lurk by un-defining proprietary compiler macros?

In my C++ class, I have a private variable defined as

unsigned int _MT;

This worked fine until I tried using the Intel C++ compiler. When I used the Intel compiler (version 15.0.xx) I get the error:

... error: expected an identifier
      unsigned int _MT;
                   ^

Upon closer inspection, I discovered that Intel has a predefined (and proprietary) macro _MT. It's not entirely clear to me what this macro does. I do know that it is only defined for 64-bit architectures—which is pretty much every platform these days.

What danger is there in undefining this macro?

Upvotes: 3

Views: 70

Answers (1)

Bathsheba
Bathsheba

Reputation: 234785

Using a variable that starts with an underscore followed by a capital letter is undefined behaviour.

Don't do it.

(I've seen _MT standing for "use multithreaded runtime").

Upvotes: 4

Related Questions