template deferAssert(string condStr, string msg = "")
enum deferAssert =
"{ enum long _deferAssert_line = __LINE__;\n" ~ " try\n" ~ " {\n" ~ " bool _deferAssert_condResult = (" ~ condStr ~ ")?true:false;\n" ~ " _deferAssert!(_deferAssert_line, __FILE__, " ~ condStr.stringof ~ ", " ~ msg.stringof ~ ")(_deferAssert_condResult);\n" ~ " }\n" ~ " catch(Throwable _deferAssert_e)\n" ~ " _deferAssertException!(_deferAssert_line, __FILE__, " ~ condStr.stringof ~ ", " ~ msg.stringof ~ ")(_deferAssert_e);\n" ~ "}\n";