25 #define throwingAssert(left, operator, right) {;}
26 #define throwingAssertPrintVar_1(left, operator, right, var1) {;}
27 #define throwingAssertPrintVar_2(left, operator, right, var1, var2) {;}
28 #define throwingAssertPrintVar_3(left, operator, right, var1, var2, var3) {;}
29 #define throwingAssertPrintVar_4(left, operator, right, var1, var2, var3, var4) {;}
30 #define throwingAssertPrintVar_5(left, operator, right, var1, var2, var3, var4, var5) {;}
32 #define throwingAssert(left, operator, right) {if(!((left) operator (right))){ throw std::runtime_error(std::string("Assertion failed in ").append(__FILE__).append(":").append(std::to_string(__LINE__)).append(":\n\tassert(").append(#left).append(" ").append(#operator).append(" ").append(#right).append(")\n\twith variable values:\n\t\t").append(#left).append(" = ").append(std::to_string(left)).append("\n\t\t").append(#right).append(" = ").append(std::to_string(right)) ); }}
33 #define throwingAssertPrintVar_1(left, operator, right, var1) {if(!((left) operator (right))){ throw std::runtime_error(std::string("Assertion failed in ").append(__FILE__).append(":").append(std::to_string(__LINE__)).append(":\n\tassert(").append(#left).append(" ").append(#operator).append(" ").append(#right).append(")\n\twith variable values:\n\t\t").append(#left).append(" = ").append(std::to_string(left)).append("\n\t\t").append(#right).append(" = ").append(std::to_string(right)).append("\n\t\t").append(#var1).append(" = ").append(std::to_string(var1)) ); }}
34 #define throwingAssertPrintVar_2(left, operator, right, var1, var2) {if(!((left) operator (right))){ throw std::runtime_error(std::string("Assertion failed in ").append(__FILE__).append(":").append(std::to_string(__LINE__)).append(":\n\tassert(").append(#left).append(" ").append(#operator).append(" ").append(#right).append(")\n\twith variable values:\n\t\t").append(#left).append(" = ").append(std::to_string(left)).append("\n\t\t").append(#right).append(" = ").append(std::to_string(right)).append("\n\t\t").append(#var1).append(" = ").append(std::to_string(var1)).append("\n\t\t").append(#var2).append(" = ").append(std::to_string(var2)) ); }}
35 #define throwingAssertPrintVar_3(left, operator, right, var1, var2, var3) {if(!((left) operator (right))){ throw std::runtime_error(std::string("Assertion failed in ").append(__FILE__).append(":").append(std::to_string(__LINE__)).append(":\n\tassert(").append(#left).append(" ").append(#operator).append(" ").append(#right).append(")\n\twith variable values:\n\t\t").append(#left).append(" = ").append(std::to_string(left)).append("\n\t\t").append(#right).append(" = ").append(std::to_string(right)).append("\n\t\t").append(#var1).append(" = ").append(std::to_string(var1)).append("\n\t\t").append(#var2).append(" = ").append(std::to_string(var2)).append("\n\t\t").append(#var3).append(" = ").append(std::to_string(var3)) ); }}
36 #define throwingAssertPrintVar_4(left, operator, right, var1, var2, var3, var4) {if(!((left) operator (right))){ throw std::runtime_error(std::string("Assertion failed in ").append(__FILE__).append(":").append(std::to_string(__LINE__)).append(":\n\tassert(").append(#left).append(" ").append(#operator).append(" ").append(#right).append(")\n\twith variable values:\n\t\t").append(#left).append(" = ").append(std::to_string(left)).append("\n\t\t").append(#right).append(" = ").append(std::to_string(right)).append("\n\t\t").append(#var1).append(" = ").append(std::to_string(var1)).append("\n\t\t").append(#var2).append(" = ").append(std::to_string(var2)).append("\n\t\t").append(#var3).append(" = ").append(std::to_string(var3)).append("\n\t\t").append(#var4).append(" = ").append(std::to_string(var4)) ); }}
37 #define throwingAssertPrintVar_5(left, operator, right, var1, var2, var3, var4, var5) {if(!((left) operator (right))){ throw std::runtime_error(std::string("Assertion failed in ").append(__FILE__).append(":").append(std::to_string(__LINE__)).append(":\n\tassert(").append(#left).append(" ").append(#operator).append(" ").append(#right).append(")\n\twith variable values:\n\t\t").append(#left).append(" = ").append(std::to_string(left)).append("\n\t\t").append(#right).append(" = ").append(std::to_string(right)).append("\n\t\t").append(#var1).append(" = ").append(std::to_string(var1)).append("\n\t\t").append(#var2).append(" = ").append(std::to_string(var2)).append("\n\t\t").append(#var3).append(" = ").append(std::to_string(var3)).append("\n\t\t").append(#var4).append(" = ").append(std::to_string(var4)).append("\n\t\t").append(#var5).append(" = ").append(std::to_string(var5)) ); }}