PRCYCoin  2.0.0.7rc1
P2P Digital Currency
util.hpp
Go to the documentation of this file.
1 #ifndef __ZXCVBN__UTIL_HPP
2 #define __ZXCVBN__UTIL_HPP
3 
4 #include <string>
5 #include <type_traits>
6 
7 #include <cmath>
8 
9 namespace zxcvbn {
10 
11 namespace util {
12 
13 template<typename T, typename T2>
14 constexpr auto round_div(T a, T2 b)
15  -> std::enable_if_t<std::is_integral<decltype(a / b)>::value, long> {
16  return (a + (a / 2)) / b;
17 }
18 
19 template<typename T, typename T2>
20 constexpr auto round_div(T a, T2 b)
21  -> std::enable_if_t<!std::is_integral<decltype(a / b)>::value, long> {
22  return std::lround(a / b);
23 }
24 
25 std::string ascii_lower(const std::string &);
26 std::string reverse_string(const std::string &);
27 std::string::size_type character_len(const std::string &,
28  std::string::size_type start,
29  std::string::size_type end) __attribute__((pure));
30 std::string::size_type character_len(const std::string &) __attribute__((pure));
31 
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);
34 char32_t utf8_decode(const std::string & start,
35  std::string::size_type & idx);
36 
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);
41 
42 
43 
44 }
45 
46 }
47 
48 #endif
b
void const uint64_t * b
Definition: field_5x52_asm_impl.h:10
zxcvbn::util::ascii_lower
std::string ascii_lower(const std::string &in)
Definition: util.cpp:15
zxcvbn
Definition: _frequency_lists.cpp:7
__attribute__
void __attribute__((sysv_abi)) secp256k1_fe_mul_inner(const uint64_t *a
zxcvbn::util::character_len
std::string::size_type character_len(const std::string &str, std::string::size_type start, std::string::size_type end)
Definition: util.cpp:84
zxcvbn::util::reverse_string
std::string reverse_string(const std::string &in)
Definition: util.cpp:28
zxcvbn::util::utf8_decode
std::pair< char32_t, std::string::iterator > utf8_decode(std::string::iterator start, std::string::iterator end)
Definition: util.cpp:124
zxcvbn::util::utf8_iter
std::string::iterator utf8_iter(std::string::iterator start, std::string::iterator end)
Definition: util.cpp:74
zxcvbn::util::round_div
constexpr auto round_div(T a, T2 b) -> std::enable_if_t< std::is_integral< decltype(a/b)>::value, long >
Definition: util.hpp:14
util
Definition: threadnames.h:10