abseil/20240116.2

Abseil Common Libraries (C++) from Google
Recipe info
2024-04-17

Available packages
Linux
Windows
macOS
macOS Apple Silicon

Install
Add the following line to your conanfile.txt:
[requires]
abseil/20240116.2

Using abseil

Note

If you are a new Conan user, we recommend reading the how to consume packages tutorial.

If you need additional assistance, please ask a question in the Conan Center Index repository.

Simplest use case consuming this recipe and assuming CMake as your local build tool:

[requires]
abseil/20240116.2
[generators]
CMakeDeps
CMakeToolchain
[layout]
cmake_layout
from conan import ConanFile
from conan.tools.cmake import cmake_layout


class ExampleRecipe(ConanFile):
    settings = "os", "compiler", "build_type", "arch"
    generators = "CMakeDeps", "CMakeToolchain"

    def requirements(self):
        self.requires("abseil/20240116.2")

    def layout(self):
        cmake_layout(self)

Now, you can run this Conan command to locally install (and build if necessary) this recipe and its dependencies (if any):

$ conan install conanfile.txt --build=missing

Useful information to take into account to consume this library:


These are the main declared targets:

  • CMake package name(s): absl
  • CMake target name(s): abseil::abseil
  • absl_any => absl::any
    absl_log => absl::log
    absl_base => absl::base
    absl_bits => absl::bits
    absl_city => absl::city
    absl_cord => absl::cord
    absl_hash => absl::hash
    absl_meta => absl::meta
    absl_span => absl::span
    absl_time => absl::time
    absl_btree => absl::btree
    absl_check => absl::check
    absl_flags => absl::flags
    absl_config => absl::config
    absl_crc32c => absl::crc32c
    absl_endian => absl::endian
    absl_int128 => absl::int128
    absl_layout => absl::layout
    absl_memory => absl::memory
    absl_status => absl::status
    absl_charset => absl::charset
    absl_cleanup => absl::cleanup
    absl_compare => absl::compare
    absl_numeric => absl::numeric
    absl_strings => absl::strings
    absl_utility => absl::utility
    absl_variant => absl::variant
    absl_absl_log => absl::absl_log
    absl_log_sink => absl::log_sink
    absl_optional => absl::optional
    absl_overload => absl::overload
    absl_prefetch => absl::prefetch
    absl_statusor => absl::statusor
    absl_strerror => absl::strerror
    absl_algorithm => absl::algorithm
    absl_debugging => absl::debugging
    absl_log_entry => absl::log_entry
    absl_log_flags => absl::log_flags
    absl_symbolize => absl::symbolize
    absl_time_zone => absl::time_zone
    absl_absl_check => absl::absl_check
    absl_bind_front => absl::bind_front
    absl_civil_time => absl::civil_time
    absl_cordz_info => absl::cordz_info
    absl_leak_check => absl::leak_check
    absl_stacktrace => absl::stacktrace
    absl_str_format => absl::str_format
    absl_vlog_is_on => absl::vlog_is_on
    absl_atomic_hook => absl::atomic_hook
    absl_die_if_null => absl::die_if_null
    absl_errno_saver => absl::errno_saver
    absl_fixed_array => absl::fixed_array
    absl_flags_parse => absl::flags_parse
    absl_flags_usage => absl::flags_usage
    absl_log_globals => absl::log_globals
    absl_nullability => absl::nullability
    absl_string_view => absl::string_view
    absl_type_traits => absl::type_traits
    absl_bad_any_cast => absl::bad_any_cast
    absl_cordz_handle => absl::cordz_handle
    absl_core_headers => absl::core_headers
    absl_crc_internal => absl::crc_internal
    absl_fast_type_id => absl::fast_type_id
    absl_flags_config => absl::flags_config
    absl_function_ref => absl::function_ref
    absl_if_constexpr => absl::if_constexpr
    absl_log_severity => absl::log_severity
    absl_log_streamer => absl::log_streamer
    absl_raw_hash_map => absl::raw_hash_map
    absl_raw_hash_set => absl::raw_hash_set
    absl_any_invocable => absl::any_invocable
    absl_base_internal => absl::base_internal
    absl_cord_internal => absl::cord_internal
    absl_examine_stack => absl::examine_stack
    absl_flat_hash_map => absl::flat_hash_map
    absl_flat_hash_set => absl::flat_hash_set
    absl_no_destructor => absl::no_destructor
    absl_node_hash_map => absl::node_hash_map
    absl_node_hash_set => absl::node_hash_set
    absl_random_random => absl::random_random
    absl_spinlock_wait => absl::spinlock_wait
    absl_crc_cord_state => absl::crc_cord_state
    absl_crc_cpu_detect => absl::crc_cpu_detect
    absl_flags_internal => absl::flags_internal
    absl_inlined_vector => absl::inlined_vector
    absl_log_initialize => absl::log_initialize
    absl_log_structured => absl::log_structured
    absl_low_level_hash => absl::low_level_hash
    absl_scoped_set_env => absl::scoped_set_env
    absl_test_allocator => absl::test_allocator
    absl_throw_delegate => absl::throw_delegate
    absl_absl_vlog_is_on => absl::absl_vlog_is_on
    absl_cordz_functions => absl::cordz_functions
    absl_flags_path_util => absl::flags_path_util
    absl_hashtable_debug => absl::hashtable_debug
    absl_malloc_internal => absl::malloc_internal
    absl_pretty_function => absl::pretty_function
    absl_sample_recorder => absl::sample_recorder
    absl_synchronization => absl::synchronization
    absl_cleanup_internal => absl::cleanup_internal
    absl_compressed_tuple => absl::compressed_tuple
    absl_container_common => absl::container_common
    absl_container_memory => absl::container_memory
    absl_cordz_statistics => absl::cordz_statistics
    absl_flags_reflection => absl::flags_reflection
    absl_node_slot_policy => absl::node_slot_policy
    absl_periodic_sampler => absl::periodic_sampler
    absl_strings_internal => absl::strings_internal
    absl_bad_any_cast_impl => absl::bad_any_cast_impl
    absl_demangle_internal => absl::demangle_internal
    absl_flags_marshalling => absl::flags_marshalling
    absl_log_sink_registry => absl::log_sink_registry
    absl_bad_variant_access => absl::bad_variant_access
    absl_cordz_sample_token => absl::cordz_sample_token
    absl_cordz_update_scope => absl::cordz_update_scope
    absl_debugging_internal => absl::debugging_internal
    absl_exponential_biased => absl::exponential_biased
    absl_flags_program_name => absl::flags_program_name
    absl_hash_policy_traits => absl::hash_policy_traits
    absl_hashtablez_sampler => absl::hashtablez_sampler
    absl_log_internal_flags => absl::log_internal_flags
    absl_log_internal_proto => absl::log_internal_proto
    absl_log_internal_strip => absl::log_internal_strip
    absl_random_bit_gen_ref => absl::random_bit_gen_ref
    absl_algorithm_container => absl::algorithm_container
    absl_bad_optional_access => absl::bad_optional_access
    absl_dynamic_annotations => absl::dynamic_annotations
    absl_log_internal_config => absl::log_internal_config
    absl_log_internal_format => absl::log_internal_format
    absl_non_temporal_memcpy => absl::non_temporal_memcpy
    absl_str_format_internal => absl::str_format_internal
    absl_common_policy_traits => absl::common_policy_traits
    absl_cordz_update_tracker => absl::cordz_update_tracker
    absl_flags_usage_internal => absl::flags_usage_internal
    absl_graphcycles_internal => absl::graphcycles_internal
    absl_has_ostream_operator => absl::has_ostream_operator
    absl_log_internal_fnmatch => absl::log_internal_fnmatch
    absl_log_internal_globals => absl::log_internal_globals
    absl_log_internal_message => absl::log_internal_message
    absl_log_internal_voidify => absl::log_internal_voidify
    absl_random_distributions => absl::random_distributions
    absl_raw_logging_internal => absl::raw_logging_internal
    absl_vlog_config_internal => absl::vlog_config_internal
    absl_flags_commandlineflag => absl::flags_commandlineflag
    absl_hashtable_debug_hooks => absl::hashtable_debug_hooks
    absl_log_internal_check_op => absl::log_internal_check_op
    absl_log_internal_log_impl => absl::log_internal_log_impl
    absl_random_seed_sequences => absl::random_seed_sequences
    absl_failure_signal_handler => absl::failure_signal_handler
    absl_hash_function_defaults => absl::hash_function_defaults
    absl_log_internal_nullguard => absl::log_internal_nullguard
    absl_numeric_representation => absl::numeric_representation
    absl_random_internal_randen => absl::random_internal_randen
    absl_random_internal_traits => absl::random_internal_traits
    absl_inlined_vector_internal => absl::inlined_vector_internal
    absl_kernel_timeout_internal => absl::kernel_timeout_internal
    absl_log_internal_check_impl => absl::log_internal_check_impl
    absl_log_internal_conditions => absl::log_internal_conditions
    absl_log_internal_nullstream => absl::log_internal_nullstream
    absl_log_internal_structured => absl::log_internal_structured
    absl_random_internal_fastmath => absl::random_internal_fastmath
    absl_random_internal_platform => absl::random_internal_platform
    absl_log_internal_log_sink_set => absl::log_internal_log_sink_set
    absl_random_internal_pool_urbg => absl::random_internal_pool_urbg
    absl_random_seed_gen_exception => absl::random_seed_gen_exception
    absl_random_internal_pcg_engine => absl::random_internal_pcg_engine
    absl_non_temporal_arm_intrinsics => absl::non_temporal_arm_intrinsics
    absl_random_internal_randen_slow => absl::random_internal_randen_slow
    absl_random_internal_mock_helpers => absl::random_internal_mock_helpers
    absl_random_internal_randen_hwaes => absl::random_internal_randen_hwaes
    absl_flags_private_handle_accessor => absl::flags_private_handle_accessor
    absl_log_internal_append_truncated => absl::log_internal_append_truncated
    absl_random_internal_generate_real => absl::random_internal_generate_real
    absl_random_internal_randen_engine => absl::random_internal_randen_engine
    absl_random_internal_seed_material => absl::random_internal_seed_material
    absl_random_internal_wide_multiply => absl::random_internal_wide_multiply
    absl_flags_commandlineflag_internal => absl::flags_commandlineflag_internal
    absl_random_internal_nonsecure_base => absl::random_internal_nonsecure_base
    absl_random_internal_uniform_helper => absl::random_internal_uniform_helper
    absl_random_internal_salted_seed_seq => absl::random_internal_salted_seed_seq
    absl_random_internal_fast_uniform_bits => absl::random_internal_fast_uniform_bits
    absl_random_internal_randen_hwaes_impl => absl::random_internal_randen_hwaes_impl
    absl_random_internal_distribution_caller => absl::random_internal_distribution_caller
    absl_random_internal_iostream_state_saver => absl::random_internal_iostream_state_saver
    absl_random_internal_distribution_test_util => absl::random_internal_distribution_test_util
    
  • pkg-config file name(s): abseil.pc
  • absl_any => absl_any.pc
    absl_log => absl_log.pc
    absl_base => absl_base.pc
    absl_bits => absl_bits.pc
    absl_city => absl_city.pc
    absl_cord => absl_cord.pc
    absl_hash => absl_hash.pc
    absl_meta => absl_meta.pc
    absl_span => absl_span.pc
    absl_time => absl_time.pc
    absl_btree => absl_btree.pc
    absl_check => absl_check.pc
    absl_flags => absl_flags.pc
    absl_config => absl_config.pc
    absl_crc32c => absl_crc32c.pc
    absl_endian => absl_endian.pc
    absl_int128 => absl_int128.pc
    absl_layout => absl_layout.pc
    absl_memory => absl_memory.pc
    absl_status => absl_status.pc
    absl_charset => absl_charset.pc
    absl_cleanup => absl_cleanup.pc
    absl_compare => absl_compare.pc
    absl_numeric => absl_numeric.pc
    absl_strings => absl_strings.pc
    absl_utility => absl_utility.pc
    absl_variant => absl_variant.pc
    absl_absl_log => absl_absl_log.pc
    absl_log_sink => absl_log_sink.pc
    absl_optional => absl_optional.pc
    absl_overload => absl_overload.pc
    absl_prefetch => absl_prefetch.pc
    absl_statusor => absl_statusor.pc
    absl_strerror => absl_strerror.pc
    absl_algorithm => absl_algorithm.pc
    absl_debugging => absl_debugging.pc
    absl_log_entry => absl_log_entry.pc
    absl_log_flags => absl_log_flags.pc
    absl_symbolize => absl_symbolize.pc
    absl_time_zone => absl_time_zone.pc
    absl_absl_check => absl_absl_check.pc
    absl_bind_front => absl_bind_front.pc
    absl_civil_time => absl_civil_time.pc
    absl_cordz_info => absl_cordz_info.pc
    absl_leak_check => absl_leak_check.pc
    absl_stacktrace => absl_stacktrace.pc
    absl_str_format => absl_str_format.pc
    absl_vlog_is_on => absl_vlog_is_on.pc
    absl_atomic_hook => absl_atomic_hook.pc
    absl_die_if_null => absl_die_if_null.pc
    absl_errno_saver => absl_errno_saver.pc
    absl_fixed_array => absl_fixed_array.pc
    absl_flags_parse => absl_flags_parse.pc
    absl_flags_usage => absl_flags_usage.pc
    absl_log_globals => absl_log_globals.pc
    absl_nullability => absl_nullability.pc
    absl_string_view => absl_string_view.pc
    absl_type_traits => absl_type_traits.pc
    absl_bad_any_cast => absl_bad_any_cast.pc
    absl_cordz_handle => absl_cordz_handle.pc
    absl_core_headers => absl_core_headers.pc
    absl_crc_internal => absl_crc_internal.pc
    absl_fast_type_id => absl_fast_type_id.pc
    absl_flags_config => absl_flags_config.pc
    absl_function_ref => absl_function_ref.pc
    absl_if_constexpr => absl_if_constexpr.pc
    absl_log_severity => absl_log_severity.pc
    absl_log_streamer => absl_log_streamer.pc
    absl_raw_hash_map => absl_raw_hash_map.pc
    absl_raw_hash_set => absl_raw_hash_set.pc
    absl_any_invocable => absl_any_invocable.pc
    absl_base_internal => absl_base_internal.pc
    absl_cord_internal => absl_cord_internal.pc
    absl_examine_stack => absl_examine_stack.pc
    absl_flat_hash_map => absl_flat_hash_map.pc
    absl_flat_hash_set => absl_flat_hash_set.pc
    absl_no_destructor => absl_no_destructor.pc
    absl_node_hash_map => absl_node_hash_map.pc
    absl_node_hash_set => absl_node_hash_set.pc
    absl_random_random => absl_random_random.pc
    absl_spinlock_wait => absl_spinlock_wait.pc
    absl_crc_cord_state => absl_crc_cord_state.pc
    absl_crc_cpu_detect => absl_crc_cpu_detect.pc
    absl_flags_internal => absl_flags_internal.pc
    absl_inlined_vector => absl_inlined_vector.pc
    absl_log_initialize => absl_log_initialize.pc
    absl_log_structured => absl_log_structured.pc
    absl_low_level_hash => absl_low_level_hash.pc
    absl_scoped_set_env => absl_scoped_set_env.pc
    absl_test_allocator => absl_test_allocator.pc
    absl_throw_delegate => absl_throw_delegate.pc
    absl_absl_vlog_is_on => absl_absl_vlog_is_on.pc
    absl_cordz_functions => absl_cordz_functions.pc
    absl_flags_path_util => absl_flags_path_util.pc
    absl_hashtable_debug => absl_hashtable_debug.pc
    absl_malloc_internal => absl_malloc_internal.pc
    absl_pretty_function => absl_pretty_function.pc
    absl_sample_recorder => absl_sample_recorder.pc
    absl_synchronization => absl_synchronization.pc
    absl_cleanup_internal => absl_cleanup_internal.pc
    absl_compressed_tuple => absl_compressed_tuple.pc
    absl_container_common => absl_container_common.pc
    absl_container_memory => absl_container_memory.pc
    absl_cordz_statistics => absl_cordz_statistics.pc
    absl_flags_reflection => absl_flags_reflection.pc
    absl_node_slot_policy => absl_node_slot_policy.pc
    absl_periodic_sampler => absl_periodic_sampler.pc
    absl_strings_internal => absl_strings_internal.pc
    absl_bad_any_cast_impl => absl_bad_any_cast_impl.pc
    absl_demangle_internal => absl_demangle_internal.pc
    absl_flags_marshalling => absl_flags_marshalling.pc
    absl_log_sink_registry => absl_log_sink_registry.pc
    absl_bad_variant_access => absl_bad_variant_access.pc
    absl_cordz_sample_token => absl_cordz_sample_token.pc
    absl_cordz_update_scope => absl_cordz_update_scope.pc
    absl_debugging_internal => absl_debugging_internal.pc
    absl_exponential_biased => absl_exponential_biased.pc
    absl_flags_program_name => absl_flags_program_name.pc
    absl_hash_policy_traits => absl_hash_policy_traits.pc
    absl_hashtablez_sampler => absl_hashtablez_sampler.pc
    absl_log_internal_flags => absl_log_internal_flags.pc
    absl_log_internal_proto => absl_log_internal_proto.pc
    absl_log_internal_strip => absl_log_internal_strip.pc
    absl_random_bit_gen_ref => absl_random_bit_gen_ref.pc
    absl_algorithm_container => absl_algorithm_container.pc
    absl_bad_optional_access => absl_bad_optional_access.pc
    absl_dynamic_annotations => absl_dynamic_annotations.pc
    absl_log_internal_config => absl_log_internal_config.pc
    absl_log_internal_format => absl_log_internal_format.pc
    absl_non_temporal_memcpy => absl_non_temporal_memcpy.pc
    absl_str_format_internal => absl_str_format_internal.pc
    absl_common_policy_traits => absl_common_policy_traits.pc
    absl_cordz_update_tracker => absl_cordz_update_tracker.pc
    absl_flags_usage_internal => absl_flags_usage_internal.pc
    absl_graphcycles_internal => absl_graphcycles_internal.pc
    absl_has_ostream_operator => absl_has_ostream_operator.pc
    absl_log_internal_fnmatch => absl_log_internal_fnmatch.pc
    absl_log_internal_globals => absl_log_internal_globals.pc
    absl_log_internal_message => absl_log_internal_message.pc
    absl_log_internal_voidify => absl_log_internal_voidify.pc
    absl_random_distributions => absl_random_distributions.pc
    absl_raw_logging_internal => absl_raw_logging_internal.pc
    absl_vlog_config_internal => absl_vlog_config_internal.pc
    absl_flags_commandlineflag => absl_flags_commandlineflag.pc
    absl_hashtable_debug_hooks => absl_hashtable_debug_hooks.pc
    absl_log_internal_check_op => absl_log_internal_check_op.pc
    absl_log_internal_log_impl => absl_log_internal_log_impl.pc
    absl_random_seed_sequences => absl_random_seed_sequences.pc
    absl_failure_signal_handler => absl_failure_signal_handler.pc
    absl_hash_function_defaults => absl_hash_function_defaults.pc
    absl_log_internal_nullguard => absl_log_internal_nullguard.pc
    absl_numeric_representation => absl_numeric_representation.pc
    absl_random_internal_randen => absl_random_internal_randen.pc
    absl_random_internal_traits => absl_random_internal_traits.pc
    absl_inlined_vector_internal => absl_inlined_vector_internal.pc
    absl_kernel_timeout_internal => absl_kernel_timeout_internal.pc
    absl_log_internal_check_impl => absl_log_internal_check_impl.pc
    absl_log_internal_conditions => absl_log_internal_conditions.pc
    absl_log_internal_nullstream => absl_log_internal_nullstream.pc
    absl_log_internal_structured => absl_log_internal_structured.pc
    absl_random_internal_fastmath => absl_random_internal_fastmath.pc
    absl_random_internal_platform => absl_random_internal_platform.pc
    absl_log_internal_log_sink_set => absl_log_internal_log_sink_set.pc
    absl_random_internal_pool_urbg => absl_random_internal_pool_urbg.pc
    absl_random_seed_gen_exception => absl_random_seed_gen_exception.pc
    absl_random_internal_pcg_engine => absl_random_internal_pcg_engine.pc
    absl_non_temporal_arm_intrinsics => absl_non_temporal_arm_intrinsics.pc
    absl_random_internal_randen_slow => absl_random_internal_randen_slow.pc
    absl_random_internal_mock_helpers => absl_random_internal_mock_helpers.pc
    absl_random_internal_randen_hwaes => absl_random_internal_randen_hwaes.pc
    absl_flags_private_handle_accessor => absl_flags_private_handle_accessor.pc
    absl_log_internal_append_truncated => absl_log_internal_append_truncated.pc
    absl_random_internal_generate_real => absl_random_internal_generate_real.pc
    absl_random_internal_randen_engine => absl_random_internal_randen_engine.pc
    absl_random_internal_seed_material => absl_random_internal_seed_material.pc
    absl_random_internal_wide_multiply => absl_random_internal_wide_multiply.pc
    absl_flags_commandlineflag_internal => absl_flags_commandlineflag_internal.pc
    absl_random_internal_nonsecure_base => absl_random_internal_nonsecure_base.pc
    absl_random_internal_uniform_helper => absl_random_internal_uniform_helper.pc
    absl_random_internal_salted_seed_seq => absl_random_internal_salted_seed_seq.pc
    absl_random_internal_fast_uniform_bits => absl_random_internal_fast_uniform_bits.pc
    absl_random_internal_randen_hwaes_impl => absl_random_internal_randen_hwaes_impl.pc
    absl_random_internal_distribution_caller => absl_random_internal_distribution_caller.pc
    absl_random_internal_iostream_state_saver => absl_random_internal_iostream_state_saver.pc
    absl_random_internal_distribution_test_util => absl_random_internal_distribution_test_util.pc
    

A simple use case using the CMake file name and the global target:

# ...
find_package(absl REQUIRED)
# ...
target_link_libraries(YOUR_TARGET abseil::abseil)

These are all the available headers. Some of these ones might be non-public; make sure of it by visiting the abseil homepage listed above:

#include "absl/algorithm/algorithm.h"
#include "absl/algorithm/container.h"
#include "absl/base/attributes.h"
#include "absl/base/call_once.h"
#include "absl/base/casts.h"
#include "absl/base/config.h"
#include "absl/base/const_init.h"
#include "absl/base/dynamic_annotations.h"
#include "absl/base/internal/atomic_hook.h"
#include "absl/base/internal/atomic_hook_test_helper.h"
#include "absl/base/internal/cycleclock.h"
#include "absl/base/internal/cycleclock_config.h"
#include "absl/base/internal/direct_mmap.h"
#include "absl/base/internal/dynamic_annotations.h"
#include "absl/base/internal/endian.h"
#include "absl/base/internal/errno_saver.h"
#include "absl/base/internal/exception_safety_testing.h"
#include "absl/base/internal/exception_testing.h"
#include "absl/base/internal/fast_type_id.h"
#include "absl/base/internal/hide_ptr.h"
#include "absl/base/internal/identity.h"
#include "absl/base/internal/inline_variable.h"
#include "absl/base/internal/inline_variable_testing.h"
#include "absl/base/internal/invoke.h"
#include "absl/base/internal/low_level_alloc.h"
#include "absl/base/internal/low_level_scheduling.h"
#include "absl/base/internal/nullability_impl.h"
#include "absl/base/internal/per_thread_tls.h"
#include "absl/base/internal/pretty_function.h"
#include "absl/base/internal/raw_logging.h"
#include "absl/base/internal/scheduling_mode.h"
#include "absl/base/internal/scoped_set_env.h"
#include "absl/base/internal/spinlock.h"
#include "absl/base/internal/spinlock_akaros.inc"
#include "absl/base/internal/spinlock_linux.inc"
#include "absl/base/internal/spinlock_posix.inc"
#include "absl/base/internal/spinlock_wait.h"
#include "absl/base/internal/spinlock_win32.inc"
#include "absl/base/internal/strerror.h"
#include "absl/base/internal/sysinfo.h"
#include "absl/base/internal/thread_identity.h"
#include "absl/base/internal/throw_delegate.h"
#include "absl/base/internal/tsan_mutex_interface.h"
#include "absl/base/internal/unaligned_access.h"
#include "absl/base/internal/unscaledcycleclock.h"
#include "absl/base/internal/unscaledcycleclock_config.h"
#include "absl/base/log_severity.h"
#include "absl/base/macros.h"
#include "absl/base/no_destructor.h"
#include "absl/base/nullability.h"
#include "absl/base/optimization.h"
#include "absl/base/options.h"
#include "absl/base/policy_checks.h"
#include "absl/base/port.h"
#include "absl/base/prefetch.h"
#include "absl/base/thread_annotations.h"
#include "absl/cleanup/cleanup.h"
#include "absl/cleanup/internal/cleanup.h"
#include "absl/container/btree_map.h"
#include "absl/container/btree_set.h"
#include "absl/container/btree_test.h"
#include "absl/container/fixed_array.h"
#include "absl/container/flat_hash_map.h"
#include "absl/container/flat_hash_set.h"
#include "absl/container/inlined_vector.h"
#include "absl/container/internal/btree.h"
#include "absl/container/internal/btree_container.h"
#include "absl/container/internal/common.h"
#include "absl/container/internal/common_policy_traits.h"
#include "absl/container/internal/compressed_tuple.h"
#include "absl/container/internal/container_memory.h"
#include "absl/container/internal/hash_function_defaults.h"
#include "absl/container/internal/hash_generator_testing.h"
#include "absl/container/internal/hash_policy_testing.h"
#include "absl/container/internal/hash_policy_traits.h"
#include "absl/container/internal/hashtable_debug.h"
#include "absl/container/internal/hashtable_debug_hooks.h"
#include "absl/container/internal/hashtablez_sampler.h"
#include "absl/container/internal/inlined_vector.h"
#include "absl/container/internal/layout.h"
#include "absl/container/internal/node_slot_policy.h"
#include "absl/container/internal/raw_hash_map.h"
#include "absl/container/internal/raw_hash_set.h"
#include "absl/container/internal/test_allocator.h"
#include "absl/container/internal/test_instance_tracker.h"
#include "absl/container/internal/tracked.h"
#include "absl/container/internal/unordered_map_constructor_test.h"
#include "absl/container/internal/unordered_map_lookup_test.h"
#include "absl/container/internal/unordered_map_members_test.h"
#include "absl/container/internal/unordered_map_modifiers_test.h"
#include "absl/container/internal/unordered_set_constructor_test.h"
#include "absl/container/internal/unordered_set_lookup_test.h"
#include "absl/container/internal/unordered_set_members_test.h"
#include "absl/container/internal/unordered_set_modifiers_test.h"
#include "absl/container/node_hash_map.h"
#include "absl/container/node_hash_set.h"
#include "absl/crc/crc32c.h"
#include "absl/crc/internal/cpu_detect.h"
#include "absl/crc/internal/crc.h"
#include "absl/crc/internal/crc32_x86_arm_combined_simd.h"
#include "absl/crc/internal/crc32c.h"
#include "absl/crc/internal/crc32c_inline.h"
#include "absl/crc/internal/crc_cord_state.h"
#include "absl/crc/internal/crc_internal.h"
#include "absl/crc/internal/crc_memcpy.h"
#include "absl/crc/internal/non_temporal_arm_intrinsics.h"
#include "absl/crc/internal/non_temporal_memcpy.h"
#include "absl/debugging/failure_signal_handler.h"
#include "absl/debugging/internal/address_is_readable.h"
#include "absl/debugging/internal/demangle.h"
#include "absl/debugging/internal/elf_mem_image.h"
#include "absl/debugging/internal/examine_stack.h"
#include "absl/debugging/internal/stack_consumption.h"
#include "absl/debugging/internal/stacktrace_aarch64-inl.inc"
#include "absl/debugging/internal/stacktrace_arm-inl.inc"
#include "absl/debugging/internal/stacktrace_config.h"
#include "absl/debugging/internal/stacktrace_emscripten-inl.inc"
#include "absl/debugging/internal/stacktrace_generic-inl.inc"
#include "absl/debugging/internal/stacktrace_powerpc-inl.inc"
#include "absl/debugging/internal/stacktrace_riscv-inl.inc"
#include "absl/debugging/internal/stacktrace_unimplemented-inl.inc"
#include "absl/debugging/internal/stacktrace_win32-inl.inc"
#include "absl/debugging/internal/stacktrace_x86-inl.inc"
#include "absl/debugging/internal/symbolize.h"
#include "absl/debugging/internal/vdso_support.h"
#include "absl/debugging/leak_check.h"
#include "absl/debugging/stacktrace.h"
#include "absl/debugging/symbolize.h"
#include "absl/debugging/symbolize_darwin.inc"
#include "absl/debugging/symbolize_elf.inc"
#include "absl/debugging/symbolize_emscripten.inc"
#include "absl/debugging/symbolize_unimplemented.inc"
#include "absl/debugging/symbolize_win32.inc"
#include "absl/flags/commandlineflag.h"
#include "absl/flags/config.h"
#include "absl/flags/declare.h"
#include "absl/flags/flag.h"
#include "absl/flags/internal/commandlineflag.h"
#include "absl/flags/internal/flag.h"
#include "absl/flags/internal/parse.h"
#include "absl/flags/internal/path_util.h"
#include "absl/flags/internal/private_handle_accessor.h"
#include "absl/flags/internal/program_name.h"
#include "absl/flags/internal/registry.h"
#include "absl/flags/internal/sequence_lock.h"
#include "absl/flags/internal/usage.h"
#include "absl/flags/marshalling.h"
#include "absl/flags/parse.h"
#include "absl/flags/reflection.h"
#include "absl/flags/usage.h"
#include "absl/flags/usage_config.h"
#include "absl/functional/any_invocable.h"
#include "absl/functional/bind_front.h"
#include "absl/functional/function_ref.h"
#include "absl/functional/internal/any_invocable.h"
#include "absl/functional/internal/front_binder.h"
#include "absl/functional/internal/function_ref.h"
#include "absl/functional/overload.h"
#include "absl/hash/hash.h"
#include "absl/hash/hash_testing.h"
#include "absl/hash/internal/city.h"
#include "absl/hash/internal/hash.h"
#include "absl/hash/internal/hash_test.h"
#include "absl/hash/internal/low_level_hash.h"
#include "absl/hash/internal/spy_hash_state.h"
#include "absl/log/absl_check.h"
#include "absl/log/absl_log.h"
#include "absl/log/absl_vlog_is_on.h"
#include "absl/log/check.h"
#include "absl/log/check_test_impl.inc"
#include "absl/log/die_if_null.h"
#include "absl/log/flags.h"
#include "absl/log/globals.h"
#include "absl/log/initialize.h"
#include "absl/log/internal/append_truncated.h"
#include "absl/log/internal/check_impl.h"
#include "absl/log/internal/check_op.h"
#include "absl/log/internal/conditions.h"
#include "absl/log/internal/config.h"
#include "absl/log/internal/flags.h"
#include "absl/log/internal/fnmatch.h"
#include "absl/log/internal/globals.h"
#include "absl/log/internal/log_format.h"
#include "absl/log/internal/log_impl.h"
#include "absl/log/internal/log_message.h"
#include "absl/log/internal/log_sink_set.h"
#include "absl/log/internal/nullguard.h"
#include "absl/log/internal/nullstream.h"
#include "absl/log/internal/proto.h"
#include "absl/log/internal/strip.h"
#include "absl/log/internal/structured.h"
#include "absl/log/internal/test_actions.h"
#include "absl/log/internal/test_helpers.h"
#include "absl/log/internal/test_matchers.h"
#include "absl/log/internal/vlog_config.h"
#include "absl/log/internal/voidify.h"
#include "absl/log/log.h"
#include "absl/log/log_basic_test_impl.inc"
#include "absl/log/log_entry.h"
#include "absl/log/log_sink.h"
#include "absl/log/log_sink_registry.h"
#include "absl/log/log_streamer.h"
#include "absl/log/scoped_mock_log.h"
#include "absl/log/structured.h"
#include "absl/log/vlog_is_on.h"
#include "absl/memory/memory.h"
#include "absl/meta/type_traits.h"
#include "absl/numeric/bits.h"
#include "absl/numeric/int128.h"
#include "absl/numeric/int128_have_intrinsic.inc"
#include "absl/numeric/int128_no_intrinsic.inc"
#include "absl/numeric/internal/bits.h"
#include "absl/numeric/internal/representation.h"
#include "absl/profiling/internal/exponential_biased.h"
#include "absl/profiling/internal/periodic_sampler.h"
#include "absl/profiling/internal/sample_recorder.h"
#include "absl/random/bernoulli_distribution.h"
#include "absl/random/beta_distribution.h"
#include "absl/random/bit_gen_ref.h"
#include "absl/random/discrete_distribution.h"
#include "absl/random/distributions.h"
#include "absl/random/exponential_distribution.h"
#include "absl/random/gaussian_distribution.h"
#include "absl/random/internal/chi_square.h"
#include "absl/random/internal/distribution_caller.h"
#include "absl/random/internal/distribution_test_util.h"
#include "absl/random/internal/explicit_seed_seq.h"
#include "absl/random/internal/fast_uniform_bits.h"
#include "absl/random/internal/fastmath.h"
#include "absl/random/internal/generate_real.h"
#include "absl/random/internal/iostream_state_saver.h"
#include "absl/random/internal/mock_helpers.h"
#include "absl/random/internal/mock_overload_set.h"
#include "absl/random/internal/nanobenchmark.h"
#include "absl/random/internal/nonsecure_base.h"
#include "absl/random/internal/pcg_engine.h"
#include "absl/random/internal/platform.h"
#include "absl/random/internal/pool_urbg.h"
#include "absl/random/internal/randen.h"
#include "absl/random/internal/randen_detect.h"
#include "absl/random/internal/randen_engine.h"
#include "absl/random/internal/randen_hwaes.h"
#include "absl/random/internal/randen_slow.h"
#include "absl/random/internal/randen_traits.h"
#include "absl/random/internal/salted_seed_seq.h"
#include "absl/random/internal/seed_material.h"
#include "absl/random/internal/sequence_urbg.h"
#include "absl/random/internal/traits.h"
#include "absl/random/internal/uniform_helper.h"
#include "absl/random/internal/wide_multiply.h"
#include "absl/random/log_uniform_int_distribution.h"
#include "absl/random/mock_distributions.h"
#include "absl/random/mocking_bit_gen.h"
#include "absl/random/poisson_distribution.h"
#include "absl/random/random.h"
#include "absl/random/seed_gen_exception.h"
#include "absl/random/seed_sequences.h"
#include "absl/random/uniform_int_distribution.h"
#include "absl/random/uniform_real_distribution.h"
#include "absl/random/zipf_distribution.h"
#include "absl/status/internal/status_internal.h"
#include "absl/status/internal/statusor_internal.h"
#include "absl/status/status.h"
#include "absl/status/status_payload_printer.h"
#include "absl/status/statusor.h"
#include "absl/strings/ascii.h"
#include "absl/strings/charconv.h"
#include "absl/strings/charset.h"
#include "absl/strings/cord.h"
#include "absl/strings/cord_analysis.h"
#include "absl/strings/cord_buffer.h"
#include "absl/strings/cord_test_helpers.h"
#include "absl/strings/cordz_test_helpers.h"
#include "absl/strings/escaping.h"
#include "absl/strings/has_absl_stringify.h"
#include "absl/strings/has_ostream_operator.h"
#include "absl/strings/internal/charconv_bigint.h"
#include "absl/strings/internal/charconv_parse.h"
#include "absl/strings/internal/cord_data_edge.h"
#include "absl/strings/internal/cord_internal.h"
#include "absl/strings/internal/cord_rep_btree.h"
#include "absl/strings/internal/cord_rep_btree_navigator.h"
#include "absl/strings/internal/cord_rep_btree_reader.h"
#include "absl/strings/internal/cord_rep_consume.h"
#include "absl/strings/internal/cord_rep_crc.h"
#include "absl/strings/internal/cord_rep_flat.h"
#include "absl/strings/internal/cord_rep_test_util.h"
#include "absl/strings/internal/cordz_functions.h"
#include "absl/strings/internal/cordz_handle.h"
#include "absl/strings/internal/cordz_info.h"
#include "absl/strings/internal/cordz_sample_token.h"
#include "absl/strings/internal/cordz_statistics.h"
#include "absl/strings/internal/cordz_update_scope.h"
#include "absl/strings/internal/cordz_update_tracker.h"
#include "absl/strings/internal/damerau_levenshtein_distance.h"
#include "absl/strings/internal/escaping.h"
#include "absl/strings/internal/escaping_test_common.h"
#include "absl/strings/internal/has_absl_stringify.h"
#include "absl/strings/internal/memutil.h"
#include "absl/strings/internal/numbers_test_common.h"
#include "absl/strings/internal/ostringstream.h"
#include "absl/strings/internal/pow10_helper.h"
#include "absl/strings/internal/resize_uninitialized.h"
#include "absl/strings/internal/stl_type_traits.h"
#include "absl/strings/internal/str_format/arg.h"
#include "absl/strings/internal/str_format/bind.h"
#include "absl/strings/internal/str_format/checker.h"
#include "absl/strings/internal/str_format/constexpr_parser.h"
#include "absl/strings/internal/str_format/extension.h"
#include "absl/strings/internal/str_format/float_conversion.h"
#include "absl/strings/internal/str_format/output.h"
#include "absl/strings/internal/str_format/parser.h"
#include "absl/strings/internal/str_join_internal.h"
#include "absl/strings/internal/str_split_internal.h"
#include "absl/strings/internal/string_constant.h"
#include "absl/strings/internal/stringify_sink.h"
#include "absl/strings/internal/utf8.h"
#include "absl/strings/match.h"
#include "absl/strings/numbers.h"
#include "absl/strings/str_cat.h"
#include "absl/strings/str_format.h"
#include "absl/strings/str_join.h"
#include "absl/strings/str_replace.h"
#include "absl/strings/str_split.h"
#include "absl/strings/string_view.h"
#include "absl/strings/strip.h"
#include "absl/strings/substitute.h"
#include "absl/synchronization/barrier.h"
#include "absl/synchronization/blocking_counter.h"
#include "absl/synchronization/internal/create_thread_identity.h"
#include "absl/synchronization/internal/futex.h"
#include "absl/synchronization/internal/futex_waiter.h"
#include "absl/synchronization/internal/graphcycles.h"
#include "absl/synchronization/internal/kernel_timeout.h"
#include "absl/synchronization/internal/per_thread_sem.h"
#include "absl/synchronization/internal/pthread_waiter.h"
#include "absl/synchronization/internal/sem_waiter.h"
#include "absl/synchronization/internal/stdcpp_waiter.h"
#include "absl/synchronization/internal/thread_pool.h"
#include "absl/synchronization/internal/waiter.h"
#include "absl/synchronization/internal/waiter_base.h"
#include "absl/synchronization/internal/win32_waiter.h"
#include "absl/synchronization/mutex.h"
#include "absl/synchronization/notification.h"
#include "absl/time/civil_time.h"
#include "absl/time/clock.h"
#include "absl/time/internal/cctz/include/cctz/civil_time.h"
#include "absl/time/internal/cctz/include/cctz/civil_time_detail.h"
#include "absl/time/internal/cctz/include/cctz/time_zone.h"
#include "absl/time/internal/cctz/include/cctz/zone_info_source.h"
#include "absl/time/internal/cctz/src/time_zone_fixed.h"
#include "absl/time/internal/cctz/src/time_zone_if.h"
#include "absl/time/internal/cctz/src/time_zone_impl.h"
#include "absl/time/internal/cctz/src/time_zone_info.h"
#include "absl/time/internal/cctz/src/time_zone_libc.h"
#include "absl/time/internal/cctz/src/time_zone_posix.h"
#include "absl/time/internal/cctz/src/tzfile.h"
#include "absl/time/internal/get_current_time_chrono.inc"
#include "absl/time/internal/get_current_time_posix.inc"
#include "absl/time/internal/test_util.h"
#include "absl/time/time.h"
#include "absl/types/any.h"
#include "absl/types/bad_any_cast.h"
#include "absl/types/bad_optional_access.h"
#include "absl/types/bad_variant_access.h"
#include "absl/types/compare.h"
#include "absl/types/internal/optional.h"
#include "absl/types/internal/span.h"
#include "absl/types/internal/variant.h"
#include "absl/types/optional.h"
#include "absl/types/span.h"
#include "absl/types/variant.h"
#include "absl/utility/internal/if_constexpr.h"
#include "absl/utility/utility.h"