Design by contract macros set for C++