Leightweight C++ Design by Contract library