std::midpoint_C++中文网

定义于头文件 <numeric>

template< class T >
constexpr T midpoint(T a, T b) noexcept;

(1) (C++20 起)

template< class T >
constexpr T* midpoint(T* a, T* b);

(2) (C++20 起)

计算整数、浮点或指针 ab 的中点。

1) 此重载仅若 Tbool 以外的算术类型才参与重载决议。

2) 此重载仅若 T 为对象类型才参与重载决议。若 T不完整类型则此重载的使用为谬构。

参数

返回值

1) ab 和的一半。不出现上溢。若 ab 拥有整数类型而和为奇数,则向 a 取整结果。若 ab 拥有浮点类型,则至多出现一次不准确运算。

2)ab 分别指向(就指针算术目的而言的)同一数组对象 xx[i]x[j] ,则返回指向 x[i+(j-i)/2] 的指针,其中除法向零取整。若 ab 不指向同一数组对象,则行为未定义。

异常

不抛异常。

示例

可能的输出:

a: 4294967295
b: 4294967293
Incorrect (overflow and wrapping): 2147483646
Correct: 4294967294