20namespace di::assert::detail {
21template<
typename T,
typename U>
28 auto lhs_context = TargetContext {};
29 auto const* lhs_data_pointer =
static_cast<char const*
>(
nullptr);
34 lhs_data_pointer =
reinterpret_cast<char const*
>(lhs_context.output().span().
data());
36 auto rhs_context = TargetContext {};
37 auto const* rhs_data_pointer =
static_cast<char const*
>(
nullptr);
42 rhs_data_pointer =
reinterpret_cast<char const*
>(rhs_context.output().span().
data());
44 assert_fail(expression, lhs_data_pointer, rhs_data_pointer, loc);
47template<
typename F,
typename T,
typename U>
48constexpr void binary_assert(F op,
char const* expression, T&& a, U&& b,
util::SourceLocation loc) {
53 binary_assert_fail(expression, util::forward<T>(a), util::forward<U>(b), loc);