summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortobo <[email protected]>2024-11-13 11:20:39 +0300
committertobo <[email protected]>2024-11-13 11:31:11 +0300
commit2aad515e65987dff861710d27b170c9f9bd18a76 (patch)
treed939cea3c57db5099b530fd13aa311b4fcb52e19
parent1017fdddd5035f4b9e8a49328dd793625dd99f97 (diff)
PopCount => std::popcount
commit_hash:5535d20d4cf079f3d5432ac63041f1af155063e7
-rw-r--r--yql/essentials/minikql/invoke_builtins/mkql_builtins_countbits.cpp9
-rw-r--r--yql/essentials/minikql/invoke_builtins/ya.make.inc3
2 files changed, 8 insertions, 4 deletions
diff --git a/yql/essentials/minikql/invoke_builtins/mkql_builtins_countbits.cpp b/yql/essentials/minikql/invoke_builtins/mkql_builtins_countbits.cpp
index d71b06251da..d434e1fac7e 100644
--- a/yql/essentials/minikql/invoke_builtins/mkql_builtins_countbits.cpp
+++ b/yql/essentials/minikql/invoke_builtins/mkql_builtins_countbits.cpp
@@ -1,6 +1,7 @@
#include "mkql_builtins_impl.h" // Y_IGNORE // Y_IGNORE
-#include <library/cpp/pop_count/popcount.h>
+#include <bit>
+#include <type_traits>
namespace NKikimr {
namespace NMiniKQL {
@@ -11,7 +12,11 @@ template<typename TInput, typename TOutput>
struct TCountBits : public TSimpleArithmeticUnary<TInput, TOutput, TCountBits<TInput, TOutput>> {
static TOutput Do(TInput val)
{
- return PopCount(val);
+ if constexpr (std::is_signed_v<TInput>) {
+ return std::popcount(static_cast<std::make_unsigned_t<TInput>>(val));
+ } else {
+ return std::popcount(val);
+ }
}
#ifndef MKQL_DISABLE_CODEGEN
diff --git a/yql/essentials/minikql/invoke_builtins/ya.make.inc b/yql/essentials/minikql/invoke_builtins/ya.make.inc
index a7b50ac2786..cc379efccaa 100644
--- a/yql/essentials/minikql/invoke_builtins/ya.make.inc
+++ b/yql/essentials/minikql/invoke_builtins/ya.make.inc
@@ -47,7 +47,6 @@ SET(ORIG_SOURCES
)
PEERDIR(
- library/cpp/pop_count
yql/essentials/types/binary_json
yql/essentials/minikql
yql/essentials/minikql/arrow
@@ -65,7 +64,7 @@ COPY(
AUTO
FROM ${ORIG_SRC_DIR}
${ORIG_SOURCES}
- OUTPUT_INCLUDES
+ OUTPUT_INCLUDES
${BINDIR}/yql/essentials/minikql/invoke_builtins/mkql_builtins_impl.h
${BINDIR}/yql/essentials/minikql/invoke_builtins/mkql_builtins_decimal.h
)