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 } |