IntAdd
Description
Generic addition convenience macro. Dispatches on the type of b to the matching IntAdd* overload.
Parameters
| Name | Direction | Description |
|---|---|---|
result |
out | Destination for the sum |
a |
in | Left operand |
b |
in | Right operand (Int, pointer, u64, or i64 compatible type) |
Usage example (from documentation)
IntAdd(&sum, &value, 10u);Success
Returns true; *result holds a + b.
Failure
Returns false if an intermediate allocation fails; *result is unchanged.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
Int.Math.c:97:
bool test_int_add(void) {
WriteFmt("Testing IntAdd\n");
DefaultAllocator alloc = DefaultAllocatorInit();- In
Int.Math.c:106:
Str text = StrInit(&alloc.base);
IntAdd(&result_value, &a, &b);
text = IntToBinary(&result_value);- In
Int.Math.c:121:
bool test_int_add_generic(void) {
WriteFmt("Testing IntAdd generic dispatch\n");
DefaultAllocator alloc = DefaultAllocatorInit();- In
Int.Math.c:131:
Str text = StrInit(&alloc.base);
IntAdd(&result_value, &base, &rhs);
bool result = IntToU64(&result_value) == 42;- In
Int.Math.c:134:
bool result = IntToU64(&result_value) == 42;
IntAdd(&result_value, &base, 2);
result = result && (IntToU64(&result_value) == 42);- In
Int.Math.c:137:
result = result && (IntToU64(&result_value) == 42);
IntAdd(&result_value, &base, -2);
result = result && (IntToU64(&result_value) == 38);- In
Int.Math.c:140:
result = result && (IntToU64(&result_value) == 38);
IntAdd(&result_value, &huge, 10);
text = IntToStr(&result_value);
result = result && (ZstrCompare(StrBegin(&text), "123456789012345678901234567900") == 0);- In
Int.Math.c:950:
bool test_int_add_null_result(void) {
WriteFmt("Testing IntAdd NULL result handling\n");
DefaultAllocator alloc = DefaultAllocatorInit();- In
Int.Math.c:957:
Int b = IntFrom(2, &alloc.base);
IntAdd(NULL, &a, &b);
DefaultAllocatorDeinit(&alloc);
return false;
Last updated on