// this one is OK
#define MY_MACRO something
// these ones are not
#define _MY_MACRO something
#define MY__MACRO something
// reserved keywords can't be redefined
#define asm
#define auto
#define bool
#define break
#define case
#define catch
#define char
#define class
#define const
#define const_cast
#define continue
#define default
#define delete
#define goto
#define do
#define double
#define dynamic_cast
#define else
#define enum
#define explicit
#define export
#define extern
#define false
#define float
#define for
#define friend
#define if
#define inline
#define int
#define long
#define mutable
#define namespace
#define new
#define operator
#define private
#define protected
#define public
#define register
#define reinterpret_cast
#define return
#define short
#define signed
#define sizeof
#define static
#define static_cast
#define struct
#define switch
#define template
#define this
#define throw
#define true
#define try
#define typedef
#define typeid
#define typename
#define union
#define unsigned
#define using
#define virtual
#define void
#define volatile
#define wchar_t
#define while
#define and
#define and_eq
#define bitand
#define bitor
#define compl
#define not
#define not_eq
#define or
#define or_eq
#define xor
#define xor_eq
