### 583. `div()` for unsigned integral types

**Section:** 29.9 [c.math] **Status:** NAD
**Submitter:** Beman Dawes **Opened:** 2006-06-15 **Last modified:** 2016-02-10

**Priority: **Not Prioritized

**View all other** issues in [c.math].

**View all issues with** NAD status.

**Discussion:**

There is no `div()` function for unsigned integer types.

There are several possible resolutions. The simplest one is noted below. Other
possibilities include a templated solution.

**Proposed resolution:**

Add to 26.7 [lib.c.math] paragraph 8:

struct udiv_t div(unsigned, unsigned);
struct uldiv_t div(unsigned long, unsigned long);
struct ulldiv_t div(unsigned long long, unsigned long long);

**Rationale:**

Toronto: C99 does not have these unsigned versions because
the signed version exist just to define the implementation-defined behavior
of signed integer division. Unsigned integer division has no implementation-defined
behavior and thus does not need this treatment.