<p>In a C++ function I need the compiler to choose a different block if it is compiling for a 64 bit architecture.</p>

<p>I know a way to do it for MSVC++ and g++, so I'll post it as an answer. However I would like to know if there is a better way (more elegant that would work for all compilers/all 64 bits architectures). If there is not a better way, what other predefined macros should I look for in order to be compatible with other compiler/architectures?</p>

This works for MSVC++ and
```
g++
```
:
```
```
#if defined(_M_X64) || defined(__amd64__)
  // code...
#endif
```
```