#define CAST_DEFINITION(NAME)\
template <typename T, typename P>\
inline T NAME##_cast(P p) { return (T)(p); }

CAST_DEFINITION(static)
CAST_DEFINITION(reinterpret)
CAST_DEFINITION(const)
CAST_DEFINITION(dynamic)

#undef CAST_DEFINITION