home | help
std::popcount(3)	       C++ Standard Libary		std::popcount(3)

NAME
     std::popcount - std::popcount

Synopsis
	Defined in header <bit>
	template< class T >			 (since C++20)
	constexpr int popcount( T x ) noexcept;

	Returns the number of 1 bits in the value of x.

	This  overload	participates  in overload resolution only if T is an un-
     signed integer
	type (that is, unsigned char, unsigned	short,	unsigned  int,	unsigned
     long, unsigned
	long long, or an extended unsigned integer type).

Parameters
	x - value of unsigned integer type

Return value
	The number of 1 bits in the value of x.

Notes
	The name popcount is a contraction for "population count".

	Feature-test macro  Value    Std      Feature
	__cpp_lib_bitops   201907L (C++20) Bit operations

Example
     // Run this code

      #include <bit>
      #include <bitset>
      #include <cstdint>
      #include <iostream>

      static_assert(std::popcount(0xFULL) == 4);

      int main()
      {
	  for (const std::uint8_t x : {0, 0b00011101, 0b11111111})
	      std::cout << "popcount( " << std::bitset<8>(x) << " ) = "
			<< std::popcount(x) << '\n';
      }

Output:
      popcount( 00000000 ) = 0
      popcount( 00011101 ) = 4
      popcount( 11111111 ) = 8

See also
	countl_zero	counts	the  number of consecutive 0 bits, starting from
     the most
	(C++20)        significant bit
		       (function template)
	countl_one     counts the number of consecutive 1  bits,  starting  from
     the most
	(C++20)        significant bit
		       (function template)
	countr_zero	counts	the  number of consecutive 0 bits, starting from
     the least
	(C++20)        significant bit
		       (function template)
	countr_one     counts the number of consecutive 1  bits,  starting  from
     the least
	(C++20)        significant bit
		       (function template)
	has_single_bit checks if a number is an integral power of 2
	(C++20)        (function template)
	count	       returns the number of bits set to true
		       (public member function of std::bitset<N>)
	all	       checks if all, any or none of the bits are set to true
	any	       (public member function of std::bitset<N>)
	none

http://cppreference.com 	   2024.06.10			std::popcount(3)

home | help