This documentation is automatically generated by online-judge-tools/verification-helper
#include "bit/bitcount.hpp"
#ifndef KK2_BIT_BITCOUNT_HPP
#define KK2_BIT_BITCOUNT_HPP 1
#include <cassert>
#include "../type_traits/integral.hpp"
namespace kk2 {
template <typename T> constexpr int ctz(T x) {
static_assert(is_integral<T>::value);
assert(x != T(0));
if constexpr (sizeof(T) <= 4) {
return __builtin_ctz(x);
} else if constexpr (sizeof(T) <= 8) {
return __builtin_ctzll(x);
} else {
if (x & 0xffffffffffffffff)
return __builtin_ctzll((unsigned long long)(x & 0xffffffffffffffff));
return 64 + __builtin_ctzll((unsigned long long)(x >> 64));
}
}
template <typename T> constexpr int lsb(T x) {
static_assert(is_integral<T>::value);
assert(x != T(0));
return ctz(x);
}
template <typename T> constexpr int clz(T x) {
static_assert(is_integral<T>::value);
assert(x != T(0));
if constexpr (sizeof(T) <= 4) {
return __builtin_clz(x);
} else if constexpr (sizeof(T) <= 8) {
return __builtin_clzll(x);
} else {
if (x >> 64) return __builtin_clzll((unsigned long long)(x >> 64));
return 64 + __builtin_clzll((unsigned long long)(x & 0xffffffffffffffff));
}
}
template <typename T> constexpr int msb(T x) {
static_assert(is_integral<T>::value);
assert(x != T(0));
return sizeof(T) * 8 - 1 - clz(x);
}
template <typename T> constexpr int popcount(T x) {
static_assert(is_integral<T>::value);
if constexpr (sizeof(T) <= 4) {
return __builtin_popcount(x);
} else if constexpr (sizeof(T) <= 8) {
return __builtin_popcountll(x);
} else {
return __builtin_popcountll((unsigned long long)(x >> 64))
+ __builtin_popcountll((unsigned long long)(x & 0xffffffffffffffff));
}
}
}; // namespace kk2
#endif // KK2_BIT_BITCOUNT_HPP
Traceback (most recent call last):
File "/opt/hostedtoolcache/Python/3.12.0/x64/lib/python3.12/site-packages/onlinejudge_verify/documentation/build.py", line 71, in _render_source_code_stat
bundled_code = language.bundle(stat.path, basedir=basedir, options={'include_paths': [basedir]}).decode()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/hostedtoolcache/Python/3.12.0/x64/lib/python3.12/site-packages/onlinejudge_verify/languages/cplusplus.py", line 187, in bundle
bundler.update(path)
File "/opt/hostedtoolcache/Python/3.12.0/x64/lib/python3.12/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py", line 401, in update
self.update(self._resolve(pathlib.Path(included), included_from=path))
File "/opt/hostedtoolcache/Python/3.12.0/x64/lib/python3.12/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py", line 312, in update
raise BundleErrorAt(path, i + 1, "#pragma once found in a non-first line")
onlinejudge_verify.languages.cplusplus_bundle.BundleErrorAt: type_traits/integral.hpp: line 4: #pragma once found in a non-first line