| 84 inline auto rotl20(T x) |
84 inline auto rotl20(T x) |
| 85 -> std::enable_if_t<std::is_arithmetic_v<T>, T> |
85 -> std::enable_if_t<std::is_arithmetic_v<T>, T> |
| 86 { |
86 { |
| 87 return (x << 20) | ((x >> 12) & 0x000000ff); |
87 return (x << 20) | ((x >> 12) & 0x000000ff); |
| 88 } |
88 } |
| |
89 |
| |
90 template<typename T, typename... Rest> |
| |
91 QString format(const QString &format_string, T&& arg, Rest&&... rest) |
| |
92 { |
| |
93 return format(format_string.arg(arg), std::forward<Rest>(rest)...); |
| |
94 } |
| |
95 |
| |
96 template<typename T> |
| |
97 QString format(const QString &format_string, T&& arg) |
| |
98 { |
| |
99 return format_string.arg(arg); |
| |
100 } |