1
0
Files
YYCCommonplace/src/yycc/num/op.hpp

36 lines
1.2 KiB
C++
Raw Normal View History

#pragma once
#include <stdexcept>
#include <concepts>
/**
* @brief The namespace providing function relative robust numeric operations.
* @details
* 使Rust编写一些程序后Rust中针对基本类型的运算符的丰富程度
* 便
* Rust中的这些便利功能
*
*
* \li
* \li
*/
namespace yycc::num::op {
/**
* @brief
* @details
*
* 使
* @tparam T
* @param[in] lhs
* @param[in] rhs
* @return
*/
template<typename T>
requires std::unsigned_integral<T>
T div_ceil(T lhs, T rhs) {
if (rhs == 0) throw std::logic_error("div with 0");
return (lhs % rhs == 0) ? (lhs / rhs) : (lhs / rhs) + 1u;
}
}