aboutsummaryrefslogtreecommitdiff
path: root/compute_kernel_writer/include/ckw/Error.h
diff options
context:
space:
mode:
Diffstat (limited to 'compute_kernel_writer/include/ckw/Error.h')
-rw-r--r--compute_kernel_writer/include/ckw/Error.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/compute_kernel_writer/include/ckw/Error.h b/compute_kernel_writer/include/ckw/Error.h
index eaf3f10c05..7da9544b9e 100644
--- a/compute_kernel_writer/include/ckw/Error.h
+++ b/compute_kernel_writer/include/ckw/Error.h
@@ -113,6 +113,13 @@ inline void ignore_unused(T &&...)
*/
#define CKW_ASSERT(cond) CKW_ASSERT_MSG(cond, #cond)
+/** If the precondition is met but the condition is not met, throw an std::runtime_error if assertion is enabled.
+ *
+ * @param[in] precond The precondition that triggers the check.
+ * @param[in] cond The condition that is expected to be true if precondition is true.
+ */
+#define CKW_ASSERT_IF(precond, cond) CKW_ASSERT(!(precond) || (cond))
+
/** Throw an std::runtime_error with the specified message if assertion is enabled.
*
* @param[in] msg The error message when the condition is not met.