I'm wondering if there are any "standard", and what they are ("or a link to good resources")

For example, I've seen a ton of files that start with "#ifndef __cpluplus". I take it it implies that all c++ compilers MUST activate the __cplusplus macro.

I'm particularly interested in knowing:
-Debug: AFAIK, in debug build, either _DEBUG or DEBUG or always set
-Compiler vendor/version: What are the main macros each of these compilers activate?
-c++ version: Is there a standard macro to know if we are using C++ 98/03/0x? To know if I can/can't include r-value references, for example
-Already included standard headers: For example, add stream functionality only if <iostream> is already included.