1 #ifndef __ZXCVBN__UTIL_HPP
2 #define __ZXCVBN__UTIL_HPP
13 template<
typename T,
typename T2>
15 -> std::enable_if_t<std::is_integral<decltype(a /
b)>::value,
long> {
16 return (a + (a / 2)) /
b;
19 template<
typename T,
typename T2>
21 -> std::enable_if_t<!std::is_integral<decltype(a /
b)>::value,
long> {
22 return std::lround(a /
b);
28 std::string::size_type start,
32 std::pair<char32_t, std::string::iterator>
utf8_decode(std::string::iterator);
33 std::pair<char32_t, std::string::const_iterator>
utf8_decode(std::string::const_iterator);
35 std::string::size_type & idx);
37 std::string::iterator
utf8_iter(std::string::iterator start,
38 std::string::iterator end);
39 std::string::const_iterator
utf8_iter(std::string::const_iterator start,
40 std::string::const_iterator end);